//
//  CommonTTool.m
//  OCDRemind
//
//  Created by 姜孟东 on 2017/4/7.
//  Copyright © 2017年 Znzkj. All rights reserved.
//

#import "CommonTTool.h"
#import <AVFoundation/AVFoundation.h>
#import "LoginVC.h"
#import "UpgradeYinKaVIPVC.h"
#import "RegisterPayVC.h"
#import "BannerModel.h"
#import "BusinessDetailedVC.h"
#import "WebVC.h"
#import "MailDetailsVC.h"
#import "PagingViewController.h"
#import "MailClassVC.h"
#import "PagingViewController.h"
#import "HomeVC.h"
#import "BenDiTableVC.h"


extern UserModel *userModel;
@implementation CommonTTool

#pragma mark - 计算label高度
+ (CGFloat)getLabelHeightWithText:(NSString *)text width:(CGFloat)width font: (UIFont *)font{
//    CGRect rect = [text boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil];
//    return rect.size.height;
    
    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
    paraStyle.alignment = NSTextAlignmentLeft;
    paraStyle.lineSpacing = 0;
    NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle
                          };
    
    CGSize size = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
    return size.height;
}

//-(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width
//{
////    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
////    paraStyle.alignment = NSTextAlignmentLeft;
////    paraStyle.lineSpacing = 4;
////    NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle
////                          };
////
////    CGSize size = [str boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
////    return size.height;
//}

+ (CGFloat)getWidthWithText:(NSString *)text height:(CGFloat)height font:(CGFloat)font{
    
    CGRect rect = [text boundingRectWithSize:CGSizeMake(MAXFLOAT, height)
                                     options:NSStringDrawingUsesLineFragmentOrigin
                                  attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]}
                                     context:nil];
    return rect.size.width;
}

#pragma mark - 根据出生日期算年龄
+ (NSString *)dateToOld:(NSDate *)bornDate{
    //获得当前系统时间
    NSDate *currentDate = [NSDate date];
    //获得当前系统时间与出生日期之间的时间间隔
    NSTimeInterval time = [currentDate timeIntervalSinceDate:bornDate];
    //时间间隔以秒作为单位,求年的话除以60*60*24*356
    int age = ((int)time)/(3600*24*365);
    return [NSString stringWithFormat:@"%d",age];
}




+ (BOOL)valiMobile:(NSString *)mobile {
    
    NSString * MOBILE = @"^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";
    
    NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    
    if ([regextestmobile evaluateWithObject:mobile] == YES)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}


#pragma mark - 判断固定电话是否合法
+ (BOOL)validateContactNumber:(NSString *)mobileNum {
    /**
     25         * 大陆地区固话及小灵通
     26         * 区号：010,020,021,022,023,024,025,027,028,029
     27         * 号码：七位或八位
     28         */
    NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
    
    NSPredicate *regextestPHS = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
    
    if ([regextestPHS evaluateWithObject:mobileNum] == YES) {
        return YES;
    } else {
        return NO;
    }
}
//正则去除网络标签
+ (BOOL)validateHttpwithString:(NSString *)string{
    
//    NSString * PHS = @"<[^>]*>|\n";
//
//    NSPredicate *regextestPHS = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];
//
//    if ([regextestPHS evaluateWithObject:string] == YES) {
//       return YES;
//    } else {
//       return NO;
//    }
    if ([string containsString:@"<img"] || [string containsString:@"http:"]) {
        return YES;
    }else {
        return NO;
    }
}


#pragma mark - 邮箱
+ (BOOL)validateEmail:(NSString *)email
{
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:email];
}


// * 功能:验证身份证是否合法
// * 参数:输入的身份证号
+ (BOOL)chk18PaperId:(NSString *)sPaperId {
    //判断位数
    if ([sPaperId length] != 15 && [sPaperId length] != 18) {
        return NO;
    }
    NSString *carid = sPaperId;
    long lSumQT =0;
    //加权因子
    int R[] ={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
    //校验码
    unsigned char sChecker[11]={'1','0','X', '9', '8', '7', '6', '5', '4', '3', '2'};
    //将15位身份证号转换成18位
    NSMutableString *mString = [NSMutableString stringWithString:sPaperId];
    if ([sPaperId length] == 15) {
        [mString insertString:@"19" atIndex:6];
        long p = 0;
        const char *pid = [mString UTF8String];
        for (int i=0; i<=16; i++)
        {
            p += (pid[i]-48) * R[i];
        }
        int o = p%11;
        NSString *string_content = [NSString stringWithFormat:@"%c",sChecker[o]];
        [mString insertString:string_content atIndex:[mString length]];
        carid = mString;
    }
    //判断地区码
    NSString * sProvince = [carid substringToIndex:2];
    if (![self areaCode:sProvince]) {
        return NO;
    }
    //判断年月日是否有效
    //年份
    int strYear = [[self getStringWithRange:carid Value1:6 Value2:4] intValue];
    //月份
    int strMonth = [[self getStringWithRange:carid Value1:10 Value2:2] intValue];
    //日
    int strDay = [[self getStringWithRange:carid Value1:12 Value2:2] intValue];
    NSTimeZone *localZone = [NSTimeZone localTimeZone];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
    [dateFormatter setTimeZone:localZone];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date=[dateFormatter dateFromString:[NSString stringWithFormat:@"%d-%d-%d 12:01:01",strYear,strMonth,strDay]];
    if (date == nil) {
        return NO;
    }
    const char *PaperId  = [carid UTF8String];
    //检验长度
    if( 18 != strlen(PaperId)) return -1;
    //校验数字
    for (int i=0; i<18; i++)
    {
        if ( !isdigit(PaperId[i]) && !(('X' == PaperId[i] || 'x' == PaperId[i]) && 17 == i) )
        {
            return NO;
        }
    }
    //验证最末的校验码
    for (int i=0; i<=16; i++)
    {
        lSumQT += (PaperId[i]-48) * R[i];
    }
    if (sChecker[lSumQT%11] != PaperId[17] )
    {
        return NO;
    }
    return YES;
}


// * 功能:判断是否在地区码内
// * 参数:地区码
+ (BOOL)areaCode:(NSString *)code {
    NSMutableDictionary *dic = [[NSMutableDictionary alloc] init] ;
    [dic setObject:@"北京" forKey:@"11"];
    [dic setObject:@"天津" forKey:@"12"];
    [dic setObject:@"河北" forKey:@"13"];
    [dic setObject:@"山西" forKey:@"14"];
    [dic setObject:@"内蒙古" forKey:@"15"];
    [dic setObject:@"辽宁" forKey:@"21"];
    [dic setObject:@"吉林" forKey:@"22"];
    [dic setObject:@"黑龙江" forKey:@"23"];
    [dic setObject:@"上海" forKey:@"31"];
    [dic setObject:@"江苏" forKey:@"32"];
    [dic setObject:@"浙江" forKey:@"33"];
    [dic setObject:@"安徽" forKey:@"34"];
    [dic setObject:@"福建" forKey:@"35"];
    [dic setObject:@"江西" forKey:@"36"];
    [dic setObject:@"山东" forKey:@"37"];
    [dic setObject:@"河南" forKey:@"41"];
    [dic setObject:@"湖北" forKey:@"42"];
    [dic setObject:@"湖南" forKey:@"43"];
    [dic setObject:@"广东" forKey:@"44"];
    [dic setObject:@"广西" forKey:@"45"];
    [dic setObject:@"海南" forKey:@"46"];
    [dic setObject:@"重庆" forKey:@"50"];
    [dic setObject:@"四川" forKey:@"51"];
    [dic setObject:@"贵州" forKey:@"52"];
    [dic setObject:@"云南" forKey:@"53"];
    [dic setObject:@"西藏" forKey:@"54"];
    [dic setObject:@"陕西" forKey:@"61"];
    [dic setObject:@"甘肃" forKey:@"62"];
    [dic setObject:@"青海" forKey:@"63"];
    [dic setObject:@"宁夏" forKey:@"64"];
    [dic setObject:@"新疆" forKey:@"65"];
    [dic setObject:@"台湾" forKey:@"71"];
    [dic setObject:@"香港" forKey:@"81"];
    [dic setObject:@"澳门" forKey:@"82"];
    [dic setObject:@"国外" forKey:@"91"];
    if ([dic objectForKey:code] == nil) {
        return NO;
    }return YES;
}


/*
 功能:获取指定范围的字符串
 参数:字符串的开始小标
 参数:字符串的结束下标
 判断身份证号出生日期
 */
+ (NSString *)getStringWithRange:(NSString *)str Value1:(NSInteger)value1 Value2:(NSInteger )value2; {
    return [str substringWithRange:NSMakeRange(value1,value2)];
}


+ (void)setUserDefaults:(id)obj key:(NSString *)key {
    
    [[NSUserDefaults standardUserDefaults] setObject:obj forKey:key];
     [[NSUserDefaults standardUserDefaults] synchronize];
}


+ (id)getUserDefaults:(NSString *)key {
    
    return [[NSUserDefaults standardUserDefaults] objectForKey:key];
}

#pragma mark - 收起键盘
+ (void)dismisKeyBoard {
    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
}

#pragma mark - 修改textFiled占位符;
+ (void)changeTextFiledPPaceholderTF:(UITextField *)TF Text:(NSString *)text color:(UIColor *)color font:(UIFont *)font {
    
    NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@",text] attributes:
                                      @{NSForegroundColorAttributeName:color,
                                        NSFontAttributeName:font
                                        }];
    TF.attributedPlaceholder = attrStr;
}


#pragma mark - 切圆
+ (UIImage *)circleImage:(UIImage *)oldImage {
    UIGraphicsBeginImageContext(oldImage.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGRect rect = CGRectMake(0, 0, oldImage.size.width, oldImage.size.height);
    CGContextAddEllipseInRect(ctx, rect);
    CGContextClip(ctx);
    [oldImage drawInRect:rect];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

#pragma mark - 获取当前屏幕显示的viewcontroller
+ (UIViewController *)getCurrentVC {
    UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
    
    UIViewController *currentVC = [self getCurrentVCFrom:rootViewController];
    
    return currentVC;
}
+ (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC {
    UIViewController *currentVC;
    
    if ([rootVC presentedViewController]) {
        // 视图是被presented出来的
        
        rootVC = [rootVC presentedViewController];
    }
    
    if ([rootVC isKindOfClass:[UITabBarController class]]) {
        // 根视图为UITabBarController
        
        currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]];
        
    } else if ([rootVC isKindOfClass:[UINavigationController class]]){
        // 根视图为UINavigationController
        
        currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]];
        
    } else {
        // 根视图为非导航类
        
        currentVC = rootVC;
    }
    
    return currentVC;
}

#pragma mark - 获取当前时间戳
+ (NSString *)getTimestempString {
    NSDate * date = [NSDate dateWithTimeIntervalSinceNow:0];
    NSTimeInterval a = [date timeIntervalSince1970];
    return [NSString stringWithFormat:@"%d", (int)a];
}


#pragma mark - 时间戳 转 时间
+ (NSString *)time_timestamp:(NSString *)timestampstr andDateFormat:(NSString *)dateFormat {
    NSString *str = [NSString stringWithFormat:@"%@",timestampstr]; // 时间戳
    NSTimeInterval time = [str doubleValue] / 1000; // 因为时差问题要加8小时 == 28800 sec
    NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];
    
    // 实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    // 设定时间格式,这里可以设置成自己需要的格式
    [dateFormatter setDateFormat:dateFormat];
    
    NSString *currentDateStr = [dateFormatter stringFromDate: detaildate];
    
    return currentDateStr;
}

#pragma mark - 价格字符串
+ (NSString *)getPriceDouble:(int )Price {
    
    if (Price == 0) {
        
        return @"";
    }
    double i = Price;
    double p =  i / 100;
    

    return [NSString stringWithFormat:@"%.2f",p];
}

#pragma mark - 获得视频第一帧
+ (UIImage*)getVideoPreViewImage:(NSURL *)path {
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:path options:nil];
    AVAssetImageGenerator *assetGen = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    
    assetGen.appliesPreferredTrackTransform = YES;
    CMTime time = CMTimeMakeWithSeconds(0.0, 1);
    NSError *error = nil;
    CMTime actualTime;
    CGImageRef image = [assetGen copyCGImageAtTime:time actualTime:&actualTime error:&error];
    UIImage *videoImage = [[UIImage alloc] initWithCGImage:image];
    CGImageRelease(image);
    return videoImage;
}

#pragma mark - 判断是否全数字
+ (BOOL)isPureInt:(NSString *)string{
    NSScanner* scan = [NSScanner scannerWithString:string];
    int val;
    return [scan scanInt:&val] && [scan isAtEnd];
}

+ (UIImage *)addWatemarkTextAfteriOS7_WithLogoImage:(UIImage *)logoImage watemarkText:(NSString *)watemarkText {

    @autoreleasepool {
    int w = logoImage.size.width / 2;
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults synchronize];
    NSString *userName = [defaults objectForKey:@"role_name"];
    NSDate *date = [NSDate date];
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
    NSString *DateTime = [formatter stringFromDate:date];
    
    watemarkText = [watemarkText stringByAppendingFormat:@"\n%@\n%@",userName,DateTime];
    
    int h = logoImage.size.height / 2;
    UIGraphicsBeginImageContext(CGSizeMake(w, h));
    [[UIColor whiteColor] set];
    [logoImage drawInRect:CGRectMake(0, 0, w, h)];
    UIFont * font = [UIFont systemFontOfSize:70.0];
    NSShadow *shadow = [[NSShadow alloc] init];
    
    shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
    
    shadow.shadowOffset = CGSizeMake(10, 10);
    [watemarkText drawInRect:CGRectMake(10, 10, w, h) withAttributes:@{NSFontAttributeName:font,NSForegroundColorAttributeName:[UIColor colorWithWhite:1 alpha:0.6],NSShadowAttributeName:shadow,NSVerticalGlyphFormAttributeName:@0}];
    
//    NSStrokeColorAttributeName:[UIColor colorWithWhite:0 alpha:1],NSStrokeWidthAttributeName:@1

    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    logoImage = nil;
    return newImage;
    }
}


#pragma mark - 图片压缩
+ (UIImage *)imageCompression:(UIImage *)lodImage {
    
    //第一个参数是图片对象，第二个参数是压的系数，其值范围为0~1。
    NSData * imageData = UIImageJPEGRepresentation(lodImage, 0.1);
    
    UIImage * newImage = [UIImage imageWithData:imageData];
    return newImage;
}

+ (void)removeSandboxFile {
    
    NSFileManager *defauleManager = [NSFileManager defaultManager];
    
    NSString *tmp = NSTemporaryDirectory();
    
    [defauleManager removeItemAtPath:tmp error:nil];
}


#pragma mark - 是否为空
+ (BOOL)isBlankString:(NSString*)string
{
    if (string == nil || string == NULL) {
        return YES;
    }
    if ([string isKindOfClass:[NSNull class]]) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
        return YES;
    }
    return NO;
}


#pragma mark - 清除空格
+ (NSString *)trimmingString:(NSString *)string {
    return [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}


#pragma mark - 首次启动页
+ (BOOL)isShowUserGuideLoad{
    
    NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     [defaults synchronize];
    NSString *lastRunVersion = [defaults objectForKey:@"LAST_RUN_VERSION_KEY"];
    if (!lastRunVersion) {
        [defaults setObject:currentVersion forKey:@"LAST_RUN_VERSION_KEY"];
        return YES;
    }else if (![lastRunVersion isEqualToString:currentVersion]) {
        [defaults setObject:currentVersion forKey:@"LAST_RUN_VERSION_KEY"];
        return YES;
    }
    return NO;
}


#pragma mark - 只获取日期
+ (NSString *)getDateNoHours:(NSString *)oldDate{
    
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date = [dateFormatter dateFromString:oldDate];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    NSString *new = [dateFormatter stringFromDate:date];
    
    return new;
}



#pragma mark - 差8个小时
+ (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate{
    //设置源日期时区
    NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"Asia/Shanghai"];
    //或GMT//设置转换后的目标日期时区
    NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];
    //得到源日期与世界标准时间的偏移量
    NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];
    //目标日期与本地时区的偏移量
    NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];
    //得到时间偏移量的差值
    NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
    //转为现在时间
    NSDate* destinationDateNow = [[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate];
    
    return destinationDateNow;
    
}


#pragma mark - 距离字符串处理
+ (NSString *)distanceWithString:(double)mi {
    if (mi >= 1000.00f) {
        
        double km = mi / 1000.00;
        
        return [NSString stringWithFormat:@"%.2fkm",km];
    }
    
    return [NSString stringWithFormat:@"%.0fm",mi];
}


#pragma mark - 金额正则表达式
+ (BOOL)validateMoney:(NSString *)money {
    NSString *phoneRegex = @"^[0-9]+(\\.[0-9]{1,2})?$";
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
    return [phoneTest evaluateWithObject:money];
}


#pragma mark - 将某个时间转化成 时间戳
+ (int)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:format]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate
    
    //时间转时间戳的方法:
    
    int timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] intValue];
    
    return timeSp;
}


#pragma mark -  判断对象是否是空
+ (BOOL)isStrNull:(id)str {
    if ([[NSString stringWithFormat:@"%@",str] isEqualToString:@""] || [[NSString stringWithFormat:@"%@",str] isEqualToString:@"<null>"] || [[NSString stringWithFormat:@"%@",str] isEqualToString:@"(null)"] || [[NSString stringWithFormat:@"%@",str] isEqualToString:@"暂无数据"]) return YES;
    return NO;
}


/**
 判断是否是有效的中文名
 
 @param realName 名字
 @return 如果是在如下规则下符合的中文名则返回`YES`，否则返回`NO`
 限制规则：
 1. 首先是名字要大于2个汉字，小于8个汉字
 2. 如果是中间带`{•|·}`的名字，则限制长度15位（新疆人的名字有15位左右的，之前公司实名认证就遇到过），如果有更长的，请自行修改长度限制
 3. 如果是不带小点的正常名字，限制长度为8位，若果觉得不适，请自行修改位数限制
 *PS: `•`或`·`具体是那个点具体处理需要注意*
 */
+ (BOOL)isVaildRealName:(NSString *)realName {
    if ([self checkEmptyString:realName]) return NO;
    
    NSRange range1 = [realName rangeOfString:@"·"];
    NSRange range2 = [realName rangeOfString:@"•"];
    if(range1.location != NSNotFound ||   // 中文 ·
       range2.location != NSNotFound )    // 英文 •
    {
        //一般中间带 `•`的名字长度不会超过15位，如果有那就设高一点
        if ([realName length] < 2 || [realName length] > 15)
        {
            return NO;
        }
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[\u4e00-\u9fa5]+[·•][\u4e00-\u9fa5]+$" options:0 error:NULL];
        
        NSTextCheckingResult *match = [regex firstMatchInString:realName options:0 range:NSMakeRange(0, [realName length])];
        
        NSUInteger count = [match numberOfRanges];
        
        return count == 1;
    }
    else {
        //一般正常的名字长度不会少于2位并且不超过8位，如果有那就设高一点
        if ([realName length] < 2 || [realName length] > 8) {
            return NO;
        }
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[\u4e00-\u9fa5]+$" options:0 error:NULL];
        
        NSTextCheckingResult *match = [regex firstMatchInString:realName options:0 range:NSMakeRange(0, [realName length])];
        
        NSUInteger count = [match numberOfRanges];
        
        return count == 1;
    }
}


/**
 判断字符串是否为空
 
 @param string 字符串
 @return 如果为空返回`YES`  不为空返回`NO`    若果传入这些字符(nil @"" @" "  @"   ")，结果为`YES`
 */
+ (BOOL)checkEmptyString:(NSString *)string {
    
    if (string == nil) return string == nil;
    
    NSString *newStr = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
    return [newStr isEqualToString:@""];
}


#pragma mark - 行间距
+ (NSMutableAttributedString *)replaceStringToAttributedString:(NSString *)replaceS initWithWidth:(CGFloat)The_Width andLineSpacing:(CGFloat)LineSpacing {
  
    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@",replaceS] attributes:@{NSFontAttributeName:kPRFont(15),NSForegroundColorAttributeName:[UIColor colorWithRed:129.0/255 green:131.0/255 blue:142.0/255 alpha:1.0]}];
    
    // 调整行间距  (只有一行不显示行间距，多行显示）
    // 计算某几个固定字符的高度，然后再计算label文本的高度，如果后者大于前者，则为多行!
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    NSDictionary *attrs = @{
                            NSFontAttributeName : kPRFont(15),
                            NSParagraphStyleAttributeName : paragraphStyle
                            };
    CGFloat oneHeight = [@"只有" boundingRectWithSize:CGSizeMake(The_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size.height;
    CGFloat rowHeight = [replaceS boundingRectWithSize:CGSizeMake(The_Width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size.height;
    if (rowHeight > oneHeight) {
        [paragraphStyle setLineSpacing:LineSpacing];
    }
    [attr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [replaceS length])];
    
    return attr;
}

/*根据传过来的文字内容、字体大小、宽度和最大尺寸动态计算文字所占用的size
 * text 文本内容
 * fontSize 字体大小
 * maxSize  size（宽度，1000）
 * return  size （计算的size）
 */
+ (CGSize)labelAutoCalculateRectWith:(NSString*)text Font:(UIFont *)font MaxSize:(CGSize)maxSize {
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    NSDictionary* attributes = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraphStyle.copy};
    CGSize labelSize;
    
    //如果是IOS6.0
    if (![text respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]){
        labelSize = [text sizeWithFont:font constrainedToSize:maxSize lineBreakMode:NSLineBreakByWordWrapping];
    }
    // 如果系统为iOS7.0
    　else {
             // iOS7中用以下方法替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
            labelSize = [text boundingRectWithSize: maxSize
                                           options: NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine
                                        attributes:attributes
                                           context:nil].size;
        }
    labelSize.height=ceil(labelSize.height);
    labelSize.width=ceil(labelSize.width);
    return labelSize;
}

#pragma mark - 不可变字符串宽高
+ (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font {
    CGRect rect;
    
    @try {
        rect = [string boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width/1.35, 8000)//限制最大的宽度和高度
                                    options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading  |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
                                 attributes:@{NSFontAttributeName: font}//传人的字体字典
                                    context:nil];
        
    } @catch (NSException *exception) {
        rect = [[string stringByAppendingString:@""] boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width/1.35, 8000)//限制最大的宽度和高度
                                                                  options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading  |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
                                                               attributes:@{NSFontAttributeName: font}//传人的字体字典
                                                                  context:nil];
        
    } @finally {
        
        rect = [[string stringByAppendingString:@""] boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width/1.35, 8000)//限制最大的宽度和高度
                                                                  options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading  |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
                                                               attributes:@{NSFontAttributeName: font}//传人的字体字典
                                                                  context:nil];
    }
    
    return rect.size;
}


#pragma mark - 银行卡号正则表达式
+ (BOOL)isBankCard:(NSString *)cardNumber {
    if(cardNumber.length == 0) {
        return NO;
    }
    
    NSString *digitsOnly = @"";
    
    char c;
    
    for (int i = 0; i < cardNumber.length; i++) {
        
        c = [cardNumber characterAtIndex:i];
        
        if (isdigit(c)) {
            
            digitsOnly =[digitsOnly stringByAppendingFormat:@"%c",c];
        }
    }
    
    int sum = 0;
    
    int digit = 0;
    
    int addend = 0;
    
    BOOL timesTwo = false;
    
    for (NSInteger i = digitsOnly.length - 1; i >= 0; i--) {
        
        digit = [digitsOnly characterAtIndex:i] - '0';
        
        if (timesTwo) {
            
            addend = digit * 2;
            
            if (addend > 9) {
                
                addend -= 9;
            }
        } else {
            
            addend = digit;
        }
        
        sum += addend;
        
        timesTwo = !timesTwo;
    }
    
    int modulus = sum % 10;
    
    return modulus == 0;
}

//判断是否为网址
+ (BOOL)isUrlAddress:(NSString*)url{
    
    NSString*reg =@"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";
    NSPredicate*urlPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", reg];
    return[urlPredicate evaluateWithObject:url];
    
}


#pragma mark -  每隔4个长度加一个空格
+ (NSString *)formatterBankCardNum:(NSString *)string {
    NSString *tempStr = string;
    
    NSInteger size = (tempStr.length / 4);
    
    NSMutableArray *tmpStrArr = [[NSMutableArray alloc] init];
    
    for (int n = 0; n < size; n++) {
        [tmpStrArr addObject:[tempStr substringWithRange:NSMakeRange(n * 4, 4)]];
    }
    
    [tmpStrArr addObject:[tempStr substringWithRange:NSMakeRange(size * 4, (tempStr.length % 4))]];
    
    tempStr = [tmpStrArr componentsJoinedByString:@" "];
    
    return tempStr;
}


#pragma mark - 车牌号格式校验(粤A8888澳)
+ (BOOL)checkCarID:(NSString *)carID {
    if (carID.length != 7) {
        return NO;
    }
    NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-hj-zA-HJ-Z]{1}[a-hj-zA-HJ-Z_0-9]{4}[a-hj-zA-HJ-Z_0-9_\u4e00-\u9fa5]$";
    NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex];
    return [carTest evaluateWithObject:carID];
    
    return YES;
}

+ (NSString *)changeDateFormatter:(NSString *)time{
    
    NSDateFormatter *format=[[NSDateFormatter alloc] init];
    
    if (time.length == 10 || time.length == 11) {
        if ([time containsString:@"日"]) {
            format.dateFormat = @"yyyy年MM月dd日";
        }else{
            format.dateFormat = @"yyyy-MM-dd";
        }
        
    }else if (time.length == 16 || time.length == 18){
        if ([time containsString:@"时"]) {
            format.dateFormat = @"yyyy年MM月dd日 HH时mm分";
        }else{
//            format.dateFormat = @"yyyy-MM-dd hh-mm";
            format.dateFormat = @"yyyy-MM-dd HH-mm";
        }
    }else{
//        format.dateFormat = @"yyyy-MM-dd hh-mm-ss";
        format.dateFormat = @"yyyy-MM-dd HH-mm-ss";
    }
    NSDate *date = [format dateFromString:time];

    NSDateFormatter *format2 = [[NSDateFormatter alloc]init];
    format2.dateFormat = @"yyyy/MM/dd";
    time = [format2 stringFromDate:date];
    return time;
    
}

+ (NSString *)changeBackDateFormatter:(NSString *)time{
    
    NSDateFormatter *format=[[NSDateFormatter alloc] init];
    if ([time containsString:@"日"]) {
        format.dateFormat = @"YYYY年MM月dd日";
    }else{
        format.dateFormat = @"yyyy/MM/dd";
    }
    
    NSDate *date = [format dateFromString:time];
    
    NSDateFormatter *format2 = [[NSDateFormatter alloc]init];
    format2.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    time = [format2 stringFromDate:date];
    return time;
    
}

- (NSDate*)getDateFromStr:(NSString*)dateStr {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    if ([dateStr containsString:@"时"]) {
        [dateFormatter setDateFormat:@"YYYY年MM月dd日 HH时mm分"];
        NSDate *date = [dateFormatter dateFromString:dateStr];
        return date;
    }
    [dateFormatter setDateFormat:@"YYYY年MM月dd日"];
    NSDate *date = [dateFormatter dateFromString:dateStr];
    return date;
}

+ (BOOL)isUrlWithUrl:(NSString *)urlStr {
    
    if (urlStr == nil)
        
        return NO;
    
    NSString *url;
    
    if (urlStr.length > 4 && [[urlStr substringToIndex:4] isEqualToString:@"www."]) {
        
        url = [NSString stringWithFormat:@"http://%@",self];
        
    } else {
        
        url = urlStr;
        
    }
    
    NSString *urlRegex = @"(https|http|ftp|rtsp|igmp|file|rtspt|rtspu)://((((25[0-5]|2[0-4]\\d|1?\\d?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1?\\d?\\d))|([0-9a-z_!~*'()-]*\\.?))([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.([a-z]{2,6})(:[0-9]{1,4})?([a-zA-Z/?_=]*)\\.\\w{1,5}";
    
    NSPredicate* urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegex];
    
    return [urlTest evaluateWithObject:url];
}

#pragma mark - 通过银行卡号判断开户行
+ (NSString *)returnBankName:(NSString *)idCard
{
    //"发卡行.卡种名称",
    NSArray* bankName = @[@"邮储银行·绿卡通" , @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡专用卡" , @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡(银联卡)" , @"邮储银行·绿卡VIP卡" , @"邮储银行·银联标准卡" , @"邮储银行·中职学生资助卡" , @"邮政储蓄银行·IC绿卡通VIP卡" , @"邮政储蓄银行·IC绿卡通" , @"邮政储蓄银行·IC联名卡" , @"邮政储蓄银行·IC预付费卡" , @"邮储银行·绿卡银联标准卡" , @"邮储银行·绿卡通" , @"邮政储蓄银行·武警军人保障卡" , @"邮政储蓄银行·中国旅游卡（金卡）" , @"邮政储蓄银行·普通高中学生资助卡" , @"邮政储蓄银行·中国旅游卡（普卡）" , @"邮政储蓄银行·福农卡" , @"工商银行·牡丹运通卡金卡" , @"工商银行·牡丹运通卡金卡" , @"工商银行·牡丹运通卡金卡" , @"工商银行·牡丹VISA卡(单位卡)" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹VISA卡(单位卡)" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹运通卡普通卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹VISA白金卡" , @"工商银行·牡丹贷记卡(银联卡)" , @"工商银行·牡丹贷记卡(银联卡)" , @"工商银行·牡丹贷记卡(银联卡)" , @"工商银行·牡丹贷记卡(银联卡)" , @"工商银行·牡丹欧元卡" , @"工商银行·牡丹欧元卡" , @"工商银行·牡丹欧元卡" , @"工商银行·牡丹万事达国际借记卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·海航信用卡" , @"工商银行·牡丹VISA信用卡" , @"工商银行·牡丹万事达信用卡" , @"工商银行·牡丹万事达信用卡" , @"工商银行·牡丹万事达信用卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹万事达白金卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·海航信用卡个人普卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·E时代卡" , @"工商银行·E时代卡" , @"工商银行·理财金卡" , @"工商银行·准贷记卡(个普)" , @"工商银行·准贷记卡(个普)" , @"工商银行·准贷记卡(个普)" , @"工商银行·准贷记卡(个普)" , @"工商银行·准贷记卡(个普)" , @"工商银行·牡丹灵通卡" , @"工商银行·准贷记卡(商普)" , @"工商银行·牡丹卡(商务卡)" , @"工商银行·准贷记卡(商金)" , @"工商银行·牡丹卡(商务卡)" , @"工商银行·贷记卡(个普)" , @"工商银行·牡丹卡(个人卡)" , @"工商银行·牡丹卡(个人卡)" , @"工商银行·牡丹卡(个人卡)" , @"工商银行·牡丹卡(个人卡)" , @"工商银行·贷记卡(个金)" , @"工商银行·牡丹交通卡" , @"工商银行·准贷记卡(个金)" , @"工商银行·牡丹交通卡" , @"工商银行·贷记卡(商普)" , @"工商银行·贷记卡(商金)" , @"工商银行·牡丹卡(商务卡)" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹交通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹灵通卡" , @"工商银行·牡丹贷记卡" , @"工商银行·牡丹贷记卡" , @"工商银行·牡丹贷记卡" , @"工商银行·牡丹贷记卡" , @"工商银行·牡丹灵通卡" , @"工商银行·中央预算单位公务卡" , @"工商银行·牡丹灵通卡" , @"工商银行·财政预算单位公务卡" , @"工商银行·牡丹卡白金卡" , @"工商银行·牡丹卡普卡" , @"工商银行·国航知音牡丹信用卡" , @"工商银行·国航知音牡丹信用卡" , @"工商银行·国航知音牡丹信用卡" , @"工商银行·国航知音牡丹信用卡" , @"工商银行·银联标准卡" , @"工商银行·中职学生资助卡" , @"工商银行·专用信用消费卡" , @"工商银行·牡丹社会保障卡" , @"中国工商银行·牡丹东航联名卡" , @"中国工商银行·牡丹东航联名卡" , @"中国工商银行·牡丹运通白金卡" , @"中国工商银行·福农灵通卡" , @"中国工商银行·福农灵通卡" , @"工商银行·灵通卡" , @"工商银行·灵通卡" , @"中国工商银行·中国旅行卡" , @"工商银行·牡丹卡普卡" , @"工商银行·国际借记卡" , @"工商银行·国际借记卡" , @"工商银行·国际借记卡" , @"工商银行·国际借记卡" , @"中国工商银行·牡丹JCB信用卡" , @"中国工商银行·牡丹JCB信用卡" , @"中国工商银行·牡丹JCB信用卡" , @"中国工商银行·牡丹JCB信用卡" , @"中国工商银行·牡丹多币种卡" , @"中国工商银行·武警军人保障卡" , @"工商银行·预付芯片卡" , @"工商银行·理财金账户金卡" , @"工商银行·灵通卡" , @"工商银行·牡丹宁波市民卡" , @"中国工商银行·中国旅游卡" , @"中国工商银行·中国旅游卡" , @"中国工商银行·中国旅游卡" , @"中国工商银行·借记卡" , @"中国工商银行·借贷合一卡" , @"中国工商银行·普通高中学生资助卡" , @"中国工商银行·牡丹多币种卡" , @"中国工商银行·牡丹多币种卡" , @"中国工商银行·牡丹百夫长信用卡" , @"中国工商银行·牡丹百夫长信用卡" , @"工商银行·工银财富卡" , @"中国工商银行·中小商户采购卡" , @"中国工商银行·中小商户采购卡" , @"中国工商银行·环球旅行金卡" , @"中国工商银行·环球旅行白金卡" , @"中国工商银行·牡丹工银大来卡" , @"中国工商银行·牡丹工银大莱卡" , @"中国工商银行·IC金卡" , @"中国工商银行·IC白金卡" , @"中国工商银行·工行IC卡（红卡）" , @"中国工商银行布鲁塞尔分行·借记卡" , @"中国工商银行布鲁塞尔分行·预付卡" , @"中国工商银行布鲁塞尔分行·预付卡" , @"中国工商银行金边分行·借记卡" , @"中国工商银行金边分行·信用卡" , @"中国工商银行金边分行·借记卡" , @"中国工商银行金边分行·信用卡" , @"中国工商银行加拿大分行·借记卡" , @"中国工商银行加拿大分行·借记卡" , @"中国工商银行加拿大分行·预付卡" , @"中国工商银行巴黎分行·借记卡" , @"中国工商银行巴黎分行·借记卡" , @"中国工商银行巴黎分行·贷记卡" , @"中国工商银行法兰克福分行·贷记卡" , @"中国工商银行法兰克福分行·借记卡" , @"中国工商银行法兰克福分行·贷记卡" , @"中国工商银行法兰克福分行·贷记卡" , @"中国工商银行法兰克福分行·借记卡" , @"中国工商银行法兰克福分行·预付卡" , @"中国工商银行法兰克福分行·预付卡" , @"中国工商银行印尼分行·借记卡" , @"中国工商银行印尼分行·信用卡" , @"中国工商银行米兰分行·借记卡" , @"中国工商银行米兰分行·预付卡" , @"中国工商银行米兰分行·预付卡" , @"中国工商银行阿拉木图子行·借记卡" , @"中国工商银行阿拉木图子行·贷记卡" , @"中国工商银行阿拉木图子行·借记卡" , @"中国工商银行阿拉木图子行·预付卡" , @"中国工商银行万象分行·借记卡" , @"中国工商银行万象分行·贷记卡" , @"中国工商银行卢森堡分行·借记卡" , @"中国工商银行卢森堡分行·贷记卡" , @"中国工商银行澳门分行·E时代卡" , @"中国工商银行澳门分行·E时代卡" , @"中国工商银行澳门分行·E时代卡" , @"中国工商银行澳门分行·理财金账户" , @"中国工商银行澳门分行·理财金账户" , @"中国工商银行澳门分行·理财金账户" , @"中国工商银行澳门分行·预付卡" , @"中国工商银行澳门分行·预付卡" , @"中国工商银行澳门分行·工银闪付预付卡" , @"中国工商银行澳门分行·工银银联公司卡" , @"中国工商银行澳门分行·Diamond" , @"中国工商银行阿姆斯特丹·借记卡" , @"中国工商银行卡拉奇分行·借记卡" , @"中国工商银行卡拉奇分行·贷记卡" , @"中国工商银行新加坡分行·贷记卡" , @"中国工商银行新加坡分行·贷记卡" , @"中国工商银行新加坡分行·借记卡" , @"中国工商银行新加坡分行·预付卡" , @"中国工商银行新加坡分行·预付卡" , @"中国工商银行新加坡分行·借记卡" , @"中国工商银行新加坡分行·借记卡" , @"中国工商银行马德里分行·借记卡" , @"中国工商银行马德里分行·借记卡" , @"中国工商银行马德里分行·预付卡" , @"中国工商银行马德里分行·预付卡" , @"中国工商银行伦敦子行·借记卡" , @"中国工商银行伦敦子行·工银伦敦借记卡" , @"中国工商银行伦敦子行·借记卡" , @"农业银行·金穗贷记卡" , @"农业银行·中国旅游卡" , @"农业银行·普通高中学生资助卡" , @"农业银行·银联标准卡" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·VISA白金卡" , @"农业银行·万事达白金卡" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡(银联卡)" , @"农业银行·金穗贷记卡" , @"农业银行·中职学生资助卡" , @"农业银行·专用惠农卡" , @"农业银行·武警军人保障卡" , @"农业银行·金穗校园卡(银联卡)" , @"农业银行·金穗星座卡(银联卡)" , @"农业银行·金穗社保卡(银联卡)" , @"农业银行·金穗旅游卡(银联卡)" , @"农业银行·金穗青年卡(银联卡)" , @"农业银行·复合介质金穗通宝卡" , @"农业银行·金穗海通卡" , @"农业银行·退役金卡" , @"农业银行·金穗贷记卡" , @"农业银行·金穗贷记卡" , @"农业银行·金穗通宝卡(银联卡)" , @"农业银行·金穗惠农卡" , @"农业银行·金穗通宝银卡" , @"农业银行·金穗通宝卡(银联卡)" , @"农业银行·金穗通宝卡(银联卡)" , @"农业银行·金穗通宝卡" , @"农业银行·金穗通宝卡(银联卡)" , @"农业银行·金穗通宝卡(银联卡)" , @"农业银行·金穗通宝钻石卡" , @"农业银行·掌尚钱包" , @"农业银行·银联IC卡金卡" , @"农业银行·银联预算单位公务卡金卡" , @"农业银行·银联IC卡白金卡" , @"农业银行·金穗公务卡" , @"中国农业银行贷记卡·IC普卡" , @"中国农业银行贷记卡·IC金卡" , @"中国农业银行贷记卡·澳元卡" , @"中国农业银行贷记卡·欧元卡" , @"中国农业银行贷记卡·金穗通商卡" , @"中国农业银行贷记卡·金穗通商卡" , @"中国农业银行贷记卡·银联白金卡" , @"中国农业银行贷记卡·中国旅游卡" , @"中国农业银行贷记卡·银联IC公务卡" , @"宁波市农业银行·市民卡B卡" , @"中国银行·联名卡" , @"中国银行·个人普卡" , @"中国银行·个人金卡" , @"中国银行·员工普卡" , @"中国银行·员工金卡" , @"中国银行·理财普卡" , @"中国银行·理财金卡" , @"中国银行·理财银卡" , @"中国银行·理财白金卡" , @"中国银行·中行金融IC卡白金卡" , @"中国银行·中行金融IC卡普卡" , @"中国银行·中行金融IC卡金卡" , @"中国银行·中银JCB卡金卡" , @"中国银行·中银JCB卡普卡" , @"中国银行·员工普卡" , @"中国银行·个人普卡" , @"中国银行·中银威士信用卡员" , @"中国银行·中银威士信用卡员" , @"中国银行·个人白金卡" , @"中国银行·中银威士信用卡" , @"中国银行·长城公务卡" , @"中国银行·长城电子借记卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银威士信用卡员" , @"中国银行·长城万事达信用卡" , @"中国银行·长城万事达信用卡" , @"中国银行·长城万事达信用卡" , @"中国银行·长城万事达信用卡" , @"中国银行·长城万事达信用卡" , @"中国银行·中银奥运信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城万事达信用卡" , @"中国银行·长城公务卡" , @"中国银行·长城公务卡" , @"中国银行·中银万事达信用卡" , @"中国银行·中银万事达信用卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城信用卡" , @"中国银行·银联单币贷记卡" , @"中国银行·长城信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城信用卡" , @"中国银行·长城电子借记卡" , @"中国银行·长城人民币信用卡" , @"中国银行·银联标准公务卡" , @"中国银行·一卡双账户普卡" , @"中国银行·财互通卡" , @"中国银行·电子现金卡" , @"中国银行·长城人民币信用卡" , @"中国银行·长城单位信用卡普卡" , @"中国银行·中银女性主题信用卡" , @"中国银行·长城单位信用卡金卡" , @"中国银行·白金卡" , @"中国银行·中职学生资助卡" , @"中国银行·银联标准卡" , @"中国银行·金融IC卡" , @"中国银行·长城社会保障卡" , @"中国银行·世界卡" , @"中国银行·社保联名卡" , @"中国银行·社保联名卡" , @"中国银行·医保联名卡" , @"中国银行·医保联名卡" , @"中国银行·公司借记卡" , @"中国银行·银联美运顶级卡" , @"中国银行·长城福农借记卡金卡" , @"中国银行·长城福农借记卡普卡" , @"中国银行·中行金融IC卡普卡" , @"中国银行·中行金融IC卡金卡" , @"中国银行·中行金融IC卡白金卡" , @"中国银行·长城银联公务IC卡白金卡" , @"中国银行·中银旅游信用卡" , @"中国银行·长城银联公务IC卡金卡" , @"中国银行·中国旅游卡" , @"中国银行·武警军人保障卡" , @"中国银行·社保联名借记IC卡" , @"中国银行·社保联名借记IC卡" , @"中国银行·医保联名借记IC卡" , @"中国银行·医保联名借记IC卡" , @"中国银行·借记IC个人普卡" , @"中国银行·借记IC个人金卡" , @"中国银行·借记IC个人普卡" , @"中国银行·借记IC白金卡" , @"中国银行·借记IC钻石卡" , @"中国银行·借记IC联名卡" , @"中国银行·普通高中学生资助卡" , @"中国银行·长城环球通港澳台旅游金卡" , @"中国银行·长城环球通港澳台旅游白金卡" , @"中国银行·中银福农信用卡" , @"中国银行金边分行·借记卡" , @"中国银行雅加达分行·借记卡" , @"中国银行首尔分行·借记卡" , @"中国银行澳门分行·人民币信用卡" , @"中国银行澳门分行·人民币信用卡" , @"中国银行澳门分行·中银卡" , @"中国银行澳门分行·中银卡" , @"中国银行澳门分行·中银卡" , @"中国银行澳门分行·中银银联双币商务卡" , @"中国银行澳门分行·预付卡" , @"中国银行澳门分行·澳门中国银行银联预付卡" , @"中国银行澳门分行·澳门中国银行银联预付卡" , @"中国银行澳门分行·熊猫卡" , @"中国银行澳门分行·财富卡" , @"中国银行澳门分行·银联港币卡" , @"中国银行澳门分行·银联澳门币卡" , @"中国银行马尼拉分行·双币种借记卡" , @"中国银行胡志明分行·借记卡" , @"中国银行曼谷分行·借记卡" , @"中国银行曼谷分行·长城信用卡环球通" , @"中国银行曼谷分行·借记卡" , @"建设银行·龙卡准贷记卡" , @"建设银行·龙卡准贷记卡金卡" , @"建设银行·中职学生资助卡" , @"建设银行·乐当家银卡VISA" , @"建设银行·乐当家金卡VISA" , @"建设银行·乐当家白金卡" , @"建设银行·龙卡普通卡VISA" , @"建设银行·龙卡储蓄卡" , @"建设银行·VISA准贷记卡(银联卡)" , @"建设银行·VISA准贷记金卡" , @"建设银行·乐当家" , @"建设银行·乐当家" , @"建设银行·准贷记金卡" , @"建设银行·乐当家白金卡" , @"建设银行·金融复合IC卡" , @"建设银行·银联标准卡" , @"建设银行·银联理财钻石卡" , @"建设银行·金融IC卡" , @"建设银行·理财白金卡" , @"建设银行·社保IC卡" , @"建设银行·财富卡私人银行卡" , @"建设银行·理财金卡" , @"建设银行·福农卡" , @"建设银行·武警军人保障卡" , @"建设银行·龙卡通" , @"建设银行·银联储蓄卡" , @"建设银行·龙卡储蓄卡(银联卡)" , @"建设银行·准贷记卡" , @"建设银行·理财白金卡" , @"建设银行·理财金卡" , @"建设银行·准贷记卡普卡" , @"建设银行·准贷记卡金卡" , @"建设银行·龙卡信用卡" , @"建设银行·建行陆港通龙卡" , @"中国建设银行·普通高中学生资助卡" , @"中国建设银行·中国旅游卡" , @"中国建设银行·龙卡JCB金卡" , @"中国建设银行·龙卡JCB白金卡" , @"中国建设银行·龙卡JCB普卡" , @"中国建设银行·龙卡贷记卡公司卡" , @"中国建设银行·龙卡贷记卡" , @"中国建设银行·龙卡国际普通卡VISA" , @"中国建设银行·龙卡国际金卡VISA" , @"中国建设银行·VISA白金信用卡" , @"中国建设银行·龙卡国际白金卡" , @"中国建设银行·龙卡国际普通卡MASTER" , @"中国建设银行·龙卡国际金卡MASTER" , @"中国建设银行·龙卡万事达金卡" , @"中国建设银行·龙卡贷记卡" , @"中国建设银行·龙卡万事达白金卡" , @"中国建设银行·龙卡贷记卡" , @"中国建设银行·龙卡万事达信用卡" , @"中国建设银行·龙卡人民币信用卡" , @"中国建设银行·龙卡人民币信用金卡" , @"中国建设银行·龙卡人民币白金卡" , @"中国建设银行·龙卡IC信用卡普卡" , @"中国建设银行·龙卡IC信用卡金卡" , @"中国建设银行·龙卡IC信用卡白金卡" , @"中国建设银行·龙卡银联公务卡普卡" , @"中国建设银行·龙卡银联公务卡金卡" , @"中国建设银行·中国旅游卡" , @"中国建设银行·中国旅游卡" , @"中国建设银行·龙卡IC公务卡" , @"中国建设银行·龙卡IC公务卡" , @"交通银行·交行预付卡" , @"交通银行·世博预付IC卡" , @"交通银行·太平洋互连卡" , @"交通银行·太平洋万事顺卡" , @"交通银行·太平洋互连卡(银联卡)" , @"交通银行·太平洋白金信用卡" , @"交通银行·太平洋双币贷记卡" , @"交通银行·太平洋双币贷记卡" , @"交通银行·太平洋双币贷记卡" , @"交通银行·太平洋白金信用卡" , @"交通银行·太平洋双币贷记卡" , @"交通银行·太平洋万事顺卡" , @"交通银行·太平洋人民币贷记卡" , @"交通银行·太平洋人民币贷记卡" , @"交通银行·太平洋双币贷记卡" , @"交通银行·太平洋准贷记卡" , @"交通银行·太平洋准贷记卡" , @"交通银行·太平洋准贷记卡" , @"交通银行·太平洋准贷记卡" , @"交通银行·太平洋借记卡" , @"交通银行·太平洋借记卡" , @"交通银行·太平洋人民币贷记卡" , @"交通银行·太平洋借记卡" , @"交通银行·太平洋MORE卡" , @"交通银行·白金卡" , @"交通银行·交通银行公务卡普卡" , @"交通银行·太平洋人民币贷记卡" , @"交通银行·太平洋互连卡" , @"交通银行·太平洋借记卡" , @"交通银行·太平洋万事顺卡" , @"交通银行·太平洋贷记卡(银联卡)" , @"交通银行·太平洋贷记卡(银联卡)" , @"交通银行·太平洋贷记卡(银联卡)" , @"交通银行·太平洋贷记卡(银联卡)" , @"交通银行·交通银行公务卡金卡" , @"交通银行·交银IC卡" , @"交通银行香港分行·交通银行港币借记卡" , @"交通银行香港分行·港币礼物卡" , @"交通银行香港分行·双币种信用卡" , @"交通银行香港分行·双币种信用卡" , @"交通银行香港分行·双币卡" , @"交通银行香港分行·银联人民币卡" , @"交通银行澳门分行·银联借记卡" , @"中信银行·中信借记卡" , @"中信银行·中信借记卡" , @"中信银行·中信国际借记卡" , @"中信银行·中信国际借记卡" , @"中信银行·中国旅行卡" , @"中信银行·中信借记卡(银联卡)" , @"中信银行·中信借记卡(银联卡)" , @"中信银行·中信贵宾卡(银联卡)" , @"中信银行·中信理财宝金卡" , @"中信银行·中信理财宝白金卡" , @"中信银行·中信钻石卡" , @"中信银行·中信钻石卡" , @"中信银行·中信借记卡" , @"中信银行·中信理财宝(银联卡)" , @"中信银行·中信理财宝(银联卡)" , @"中信银行·中信理财宝(银联卡)" , @"中信银行·借记卡" , @"中信银行·理财宝IC卡" , @"中信银行·理财宝IC卡" , @"中信银行·理财宝IC卡" , @"中信银行·理财宝IC卡" , @"中信银行·理财宝IC卡" , @"中信银行·主账户复合电子现金卡" , @"光大银行·阳光商旅信用卡" , @"光大银行·阳光商旅信用卡" , @"光大银行·阳光商旅信用卡" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·阳光卡(银联卡)" , @"光大银行·借记卡普卡" , @"光大银行·社会保障IC卡" , @"光大银行·IC借记卡普卡" , @"光大银行·手机支付卡" , @"光大银行·联名IC卡普卡" , @"光大银行·借记IC卡白金卡" , @"光大银行·借记IC卡金卡" , @"光大银行·阳光旅行卡" , @"光大银行·借记IC卡钻石卡" , @"光大银行·联名IC卡金卡" , @"光大银行·联名IC卡白金卡" , @"光大银行·联名IC卡钻石卡" , @"华夏银行·华夏卡(银联卡)" , @"华夏银行·华夏白金卡" , @"华夏银行·华夏普卡" , @"华夏银行·华夏金卡" , @"华夏银行·华夏白金卡" , @"华夏银行·华夏钻石卡" , @"华夏银行·华夏卡(银联卡)" , @"华夏银行·华夏至尊金卡(银联卡)" , @"华夏银行·华夏丽人卡(银联卡)" , @"华夏银行·华夏万通卡" , @"民生银行·民生借记卡(银联卡)" , @"民生银行·民生银联借记卡－金卡" , @"民生银行·钻石卡" , @"民生银行·民生借记卡(银联卡)" , @"民生银行·民生借记卡(银联卡)" , @"民生银行·民生借记卡(银联卡)" , @"民生银行·民生借记卡" , @"民生银行·民生国际卡" , @"民生银行·民生国际卡(银卡)" , @"民生银行·民生国际卡(欧元卡)" , @"民生银行·民生国际卡(澳元卡)" , @"民生银行·民生国际卡" , @"民生银行·民生国际卡" , @"民生银行·薪资理财卡" , @"民生银行·借记卡普卡" , @"民生银行·民生MasterCard" , @"民生银行·民生MasterCard" , @"民生银行·民生MasterCard" , @"民生银行·民生MasterCard" , @"民生银行·民生JCB信用卡" , @"民生银行·民生JCB金卡" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生JCB普卡" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生信用卡(银联卡)" , @"民生银行·民生信用卡(银联卡)" , @"民生银行·民生银联白金信用卡" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生银联个人白金卡" , @"民生银行·公务卡金卡" , @"民生银行·民生贷记卡(银联卡)" , @"民生银行·民生银联商务信用卡" , @"民生银行·民VISA无限卡" , @"民生银行·民生VISA商务白金卡" , @"民生银行·民生万事达钛金卡" , @"民生银行·民生万事达世界卡" , @"民生银行·民生万事达白金公务卡" , @"民生银行·民生JCB白金卡" , @"民生银行·银联标准金卡" , @"民生银行·银联芯片普卡" , @"民生银行·民生运通双币信用卡普卡" , @"民生银行·民生运通双币信用卡金卡" , @"民生银行·民生运通双币信用卡钻石卡" , @"民生银行·民生运通双币标准信用卡白金卡" , @"民生银行·银联芯片金卡" , @"民生银行·银联芯片白金卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·两地一卡通" , @"招商银行·招行国际卡(银联卡)" , @"招商银行·招商银行信用卡" , @"招商银行·VISA商务信用卡" , @"招商银行·招行国际卡(银联卡)" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招行国际卡(银联卡)" , @"招商银行·世纪金花联名信用卡" , @"招商银行·招行国际卡(银联卡)" , @"招商银行·招商银行信用卡" , @"招商银行·万事达信用卡" , @"招商银行·万事达信用卡" , @"招商银行·万事达信用卡" , @"招商银行·万事达信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·一卡通(银联卡)" , @"招商银行·万事达信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·招商银行信用卡" , @"招商银行·一卡通(银联卡)" , @"招商银行·公司卡(银联卡)" , @"招商银行·金卡" , @"招商银行·招行一卡通" , @"招商银行·招行一卡通" , @"招商银行·万事达信用卡" , @"招商银行·金葵花卡" , @"招商银行·电子现金卡" , @"招商银行·银联IC普卡" , @"招商银行·银联IC金卡" , @"招商银行·银联金葵花IC卡" , @"招商银行·IC公务卡" , @"招商银行·招商银行信用卡" , @"招商银行信用卡中心·美国运通绿卡" , @"招商银行信用卡中心·美国运通金卡" , @"招商银行信用卡中心·美国运通商务绿卡" , @"招商银行信用卡中心·美国运通商务金卡" , @"招商银行信用卡中心·VISA信用卡" , @"招商银行信用卡中心·MASTER信用卡" , @"招商银行信用卡中心·MASTER信用金卡" , @"招商银行信用卡中心·银联标准公务卡(金卡)" , @"招商银行信用卡中心·VISA信用卡" , @"招商银行信用卡中心·银联标准财政公务卡" , @"招商银行信用卡中心·芯片IC信用卡" , @"招商银行信用卡中心·芯片IC信用卡" , @"招商银行香港分行·香港一卡通" , @"兴业银行·兴业卡(银联卡)" , @"兴业银行·兴业卡(银联标准卡)" , @"兴业银行·兴业自然人生理财卡" , @"兴业银行·兴业智能卡(银联卡)" , @"兴业银行·兴业智能卡" , @"兴业银行·visa标准双币个人普卡" , @"兴业银行·VISA商务普卡" , @"兴业银行·VISA商务金卡" , @"兴业银行·VISA运动白金信用卡" , @"兴业银行·万事达信用卡(银联卡)" , @"兴业银行·VISA信用卡(银联卡)" , @"兴业银行·加菲猫信用卡" , @"兴业银行·个人白金卡" , @"兴业银行·银联信用卡(银联卡)" , @"兴业银行·银联信用卡(银联卡)" , @"兴业银行·银联白金信用卡" , @"兴业银行·银联标准公务卡" , @"兴业银行·VISA信用卡(银联卡)" , @"兴业银行·万事达信用卡(银联卡)" , @"兴业银行·银联标准贷记普卡" , @"兴业银行·银联标准贷记金卡" , @"兴业银行·银联标准贷记金卡" , @"兴业银行·银联标准贷记金卡" , @"兴业银行·兴业信用卡" , @"兴业银行·兴业信用卡" , @"兴业银行·兴业信用卡" , @"兴业银行·银联标准贷记普卡" , @"兴业银行·银联标准贷记普卡" , @"兴业银行·兴业芯片普卡" , @"兴业银行·兴业芯片金卡" , @"兴业银行·兴业芯片白金卡" , @"兴业银行·兴业芯片钻石卡" , @"浦东发展银行·浦发JCB金卡" , @"浦东发展银行·浦发JCB白金卡" , @"浦东发展银行·信用卡VISA普通" , @"浦东发展银行·信用卡VISA金卡" , @"浦东发展银行·浦发银行VISA年青卡" , @"浦东发展银行·VISA白金信用卡" , @"浦东发展银行·浦发万事达白金卡" , @"浦东发展银行·浦发JCB普卡" , @"浦东发展银行·浦发万事达金卡" , @"浦东发展银行·浦发万事达普卡" , @"浦东发展银行·浦发单币卡" , @"浦东发展银行·浦发银联单币麦兜普卡" , @"浦东发展银行·东方轻松理财卡" , @"浦东发展银行·东方-轻松理财卡普卡" , @"浦东发展银行·东方轻松理财卡" , @"浦东发展银行·东方轻松理财智业金卡" , @"浦东发展银行·东方卡(银联卡)" , @"浦东发展银行·东方卡(银联卡)" , @"浦东发展银行·东方卡(银联卡)" , @"浦东发展银行·公务卡金卡" , @"浦东发展银行·公务卡普卡" , @"浦东发展银行·东方卡" , @"浦东发展银行·东方卡" , @"浦东发展银行·浦发单币卡" , @"浦东发展银行·浦发联名信用卡" , @"浦东发展银行·浦发银联白金卡" , @"浦东发展银行·轻松理财普卡" , @"浦东发展银行·移动联名卡" , @"浦东发展银行·轻松理财消贷易卡" , @"浦东发展银行·轻松理财普卡（复合卡）" , @"浦东发展银行·贷记卡" , @"浦东发展银行·贷记卡" , @"浦东发展银行·东方借记卡（复合卡）" , @"浦东发展银行·电子现金卡（IC卡）" , @"浦东发展银行·移动浦发联名卡" , @"浦东发展银行·东方-标准准贷记卡" , @"浦东发展银行·轻松理财金卡（复合卡）" , @"浦东发展银行·轻松理财白金卡（复合卡）" , @"浦东发展银行·轻松理财钻石卡（复合卡）" , @"浦东发展银行·东方卡" , @"恒丰银行·九州IC卡" , @"恒丰银行·九州借记卡(银联卡)" , @"恒丰银行·九州借记卡(银联卡)" , @"天津市商业银行·银联卡(银联卡)" , @"烟台商业银行·金通卡" , @"潍坊银行·鸢都卡(银联卡)" , @"潍坊银行·鸳都卡(银联卡)" , @"临沂商业银行·沂蒙卡(银联卡)" , @"临沂商业银行·沂蒙卡(银联卡)" , @"日照市商业银行·黄海卡" , @"日照市商业银行·黄海卡(银联卡)" , @"浙商银行·商卡" , @"浙商银行·商卡" , @"渤海银行·浩瀚金卡" , @"渤海银行·渤海银行借记卡" , @"渤海银行·金融IC卡" , @"渤海银行·渤海银行公司借记卡" , @"星展银行·星展银行借记卡" , @"星展银行·星展银行借记卡" , @"恒生银行·恒生通财卡" , @"恒生银行·恒生优越通财卡" , @"新韩银行·新韩卡" , @"上海银行·慧通钻石卡" , @"上海银行·慧通金卡" , @"上海银行·私人银行卡" , @"上海银行·综合保险卡" , @"上海银行·申卡社保副卡(有折)" , @"上海银行·申卡社保副卡(无折)" , @"上海银行·白金IC借记卡" , @"上海银行·慧通白金卡(配折)" , @"上海银行·慧通白金卡(不配折)" , @"上海银行·申卡(银联卡)" , @"上海银行·申卡借记卡" , @"上海银行·银联申卡(银联卡)" , @"上海银行·单位借记卡" , @"上海银行·首发纪念版IC卡" , @"上海银行·申卡贷记卡" , @"上海银行·申卡贷记卡" , @"上海银行·J分期付款信用卡" , @"上海银行·申卡贷记卡" , @"上海银行·申卡贷记卡" , @"上海银行·上海申卡IC" , @"上海银行·申卡贷记卡" , @"上海银行·申卡贷记卡普通卡" , @"上海银行·申卡贷记卡金卡" , @"上海银行·万事达白金卡" , @"上海银行·万事达星运卡" , @"上海银行·申卡贷记卡金卡" , @"上海银行·申卡贷记卡普通卡" , @"上海银行·安融卡" , @"上海银行·分期付款信用卡" , @"上海银行·信用卡" , @"上海银行·个人公务卡" , @"上海银行·安融卡" , @"上海银行·上海银行银联白金卡" , @"上海银行·贷记IC卡" , @"上海银行·中国旅游卡（IC普卡）" , @"上海银行·中国旅游卡（IC金卡）" , @"上海银行·中国旅游卡（IC白金卡）" , @"上海银行·万事达钻石卡" , @"上海银行·淘宝IC普卡" , @"北京银行·京卡借记卡" , @"北京银行·京卡(银联卡)" , @"北京银行·京卡借记卡" , @"北京银行·京卡" , @"北京银行·京卡" , @"北京银行·借记IC卡" , @"北京银行·京卡贵宾金卡" , @"北京银行·京卡贵宾白金卡" , @"吉林银行·君子兰一卡通(银联卡)" , @"吉林银行·君子兰卡(银联卡)" , @"吉林银行·长白山金融IC卡" , @"吉林银行·信用卡" , @"吉林银行·信用卡" , @"吉林银行·公务卡" , @"镇江市商业银行·金山灵通卡(银联卡)" , @"镇江市商业银行·金山灵通卡(银联卡)" , @"宁波银行·银联标准卡" , @"宁波银行·汇通借记卡" , @"宁波银行·汇通卡(银联卡)" , @"宁波银行·明州卡" , @"宁波银行·汇通借记卡" , @"宁波银行·汇通国际卡银联双币卡" , @"宁波银行·汇通国际卡银联双币卡" , @"平安银行·新磁条借记卡" , @"平安银行·平安银行IC借记卡" , @"平安银行·万事顺卡" , @"平安银行·平安银行借记卡" , @"平安银行·平安银行借记卡" , @"平安银行·万事顺借记卡" , @"焦作市商业银行·月季借记卡(银联卡)" , @"焦作市商业银行·月季城市通(银联卡)" , @"焦作市商业银行·中国旅游卡" , @"温州银行·金鹿卡" , @"汉口银行·九通卡(银联卡)" , @"汉口银行·九通卡" , @"汉口银行·借记卡" , @"汉口银行·借记卡" , @"盛京银行·玫瑰卡" , @"盛京银行·玫瑰IC卡" , @"盛京银行·玫瑰IC卡" , @"盛京银行·玫瑰卡" , @"盛京银行·玫瑰卡" , @"盛京银行·玫瑰卡(银联卡)" , @"盛京银行·玫瑰卡(银联卡)" , @"盛京银行·盛京银行公务卡" , @"洛阳银行·都市一卡通(银联卡)" , @"洛阳银行·都市一卡通(银联卡)" , @"洛阳银行·--" , @"大连银行·北方明珠卡" , @"大连银行·人民币借记卡" , @"大连银行·金融IC借记卡" , @"大连银行·大连市社会保障卡" , @"大连银行·借记IC卡" , @"大连银行·借记IC卡" , @"大连银行·大连市商业银行贷记卡" , @"大连银行·大连市商业银行贷记卡" , @"大连银行·银联标准公务卡" , @"苏州市商业银行·姑苏卡" , @"杭州商业银行·西湖卡" , @"杭州商业银行·西湖卡" , @"杭州商业银行·借记IC卡" , @"杭州商业银行·" , @"南京银行·梅花信用卡公务卡" , @"南京银行·梅花信用卡商务卡" , @"南京银行·梅花贷记卡(银联卡)" , @"南京银行·梅花借记卡(银联卡)" , @"南京银行·白金卡" , @"南京银行·商务卡" , @"东莞市商业银行·万顺通卡(银联卡)" , @"东莞市商业银行·万顺通卡(银联卡)" , @"东莞市商业银行·万顺通借记卡" , @"东莞市商业银行·社会保障卡" , @"乌鲁木齐市商业银行·雪莲借记IC卡" , @"乌鲁木齐市商业银行·乌鲁木齐市公务卡" , @"乌鲁木齐市商业银行·福农卡贷记卡" , @"乌鲁木齐市商业银行·福农卡准贷记卡" , @"乌鲁木齐市商业银行·雪莲准贷记卡" , @"乌鲁木齐市商业银行·雪莲贷记卡(银联卡)" , @"乌鲁木齐市商业银行·雪莲借记IC卡" , @"乌鲁木齐市商业银行·雪莲借记卡(银联卡)" , @"乌鲁木齐市商业银行·雪莲卡(银联卡)" , @"绍兴银行·兰花IC借记卡" , @"绍兴银行·社保IC借记卡" , @"绍兴银行·兰花公务卡" , @"成都商业银行·芙蓉锦程福农卡" , @"成都商业银行·芙蓉锦程天府通卡" , @"成都商业银行·锦程卡(银联卡)" , @"成都商业银行·锦程卡金卡" , @"成都商业银行·锦程卡定活一卡通金卡" , @"成都商业银行·锦程卡定活一卡通" , @"成都商业银行·锦程力诚联名卡" , @"成都商业银行·锦程力诚联名卡" , @"成都商业银行·锦程卡(银联卡)" , @"抚顺银行·借记IC卡" , @"临商银行·借记卡" , @"宜昌市商业银行·三峡卡(银联卡)" , @"宜昌市商业银行·信用卡(银联卡)" , @"葫芦岛市商业银行·一通卡" , @"葫芦岛市商业银行·一卡通(银联卡)" , @"天津市商业银行·津卡" , @"天津市商业银行·津卡贷记卡(银联卡)" , @"天津市商业银行·贷记IC卡" , @"天津市商业银行·--" , @"天津银行·商务卡" , @"宁夏银行·宁夏银行公务卡" , @"宁夏银行·宁夏银行福农贷记卡" , @"宁夏银行·如意卡(银联卡)" , @"宁夏银行·宁夏银行福农借记卡" , @"宁夏银行·如意借记卡" , @"宁夏银行·如意IC卡" , @"宁夏银行·宁夏银行如意借记卡" , @"宁夏银行·中国旅游卡" , @"齐商银行·金达卡(银联卡)" , @"齐商银行·金达借记卡(银联卡)" , @"齐商银行·金达IC卡" , @"徽商银行·黄山卡" , @"徽商银行·黄山卡" , @"徽商银行·借记卡" , @"徽商银行·徽商银行中国旅游卡（安徽）" , @"徽商银行合肥分行·黄山卡" , @"徽商银行芜湖分行·黄山卡(银联卡)" , @"徽商银行马鞍山分行·黄山卡(银联卡)" , @"徽商银行淮北分行·黄山卡(银联卡)" , @"徽商银行安庆分行·黄山卡(银联卡)" , @"重庆银行·长江卡(银联卡)" , @"重庆银行·长江卡(银联卡)" , @"重庆银行·长江卡" , @"重庆银行·借记IC卡" , @"哈尔滨银行·丁香一卡通(银联卡)" , @"哈尔滨银行·丁香借记卡(银联卡)" , @"哈尔滨银行·丁香卡" , @"哈尔滨银行·福农借记卡" , @"无锡市商业银行·太湖金保卡(银联卡)" , @"丹东银行·借记IC卡" , @"丹东银行·丹东银行公务卡" , @"兰州银行·敦煌卡" , @"南昌银行·金瑞卡(银联卡)" , @"南昌银行·南昌银行借记卡" , @"南昌银行·金瑞卡" , @"晋商银行·晋龙一卡通" , @"晋商银行·晋龙一卡通" , @"晋商银行·晋龙卡(银联卡)" , @"青岛银行·金桥通卡" , @"青岛银行·金桥卡(银联卡)" , @"青岛银行·金桥卡(银联卡)" , @"青岛银行·金桥卡" , @"青岛银行·借记IC卡" , @"吉林银行·雾凇卡(银联卡)" , @"吉林银行·雾凇卡(银联卡)" , @"南通商业银行·金桥卡(银联卡)" , @"南通商业银行·金桥卡(银联卡)" , @"日照银行·黄海卡、财富卡借记卡" , @"鞍山银行·千山卡(银联卡)" , @"鞍山银行·千山卡(银联卡)" , @"鞍山银行·千山卡" , @"青海银行·三江银行卡(银联卡)" , @"青海银行·三江卡" , @"台州银行·大唐贷记卡" , @"台州银行·大唐准贷记卡" , @"台州银行·大唐卡(银联卡)" , @"台州银行·大唐卡" , @"台州银行·借记卡" , @"台州银行·公务卡" , @"泉州银行·海峡银联卡(银联卡)" , @"泉州银行·海峡储蓄卡" , @"泉州银行·海峡银联卡(银联卡)" , @"泉州银行·海峡卡" , @"泉州银行·公务卡" , @"昆明商业银行·春城卡(银联卡)" , @"昆明商业银行·春城卡(银联卡)" , @"昆明商业银行·富滇IC卡（复合卡）" , @"阜新银行·借记IC卡" , @"嘉兴银行·南湖借记卡(银联卡)" , @"廊坊银行·白金卡" , @"廊坊银行·金卡" , @"廊坊银行·银星卡(银联卡)" , @"廊坊银行·龙凤呈祥卡" , @"内蒙古银行·百灵卡(银联卡)" , @"内蒙古银行·成吉思汗卡" , @"湖州市商业银行·百合卡" , @"湖州市商业银行·" , @"沧州银行·狮城卡" , @"南宁市商业银行·桂花卡(银联卡)" , @"包商银行·雄鹰卡(银联卡)" , @"包商银行·包头市商业银行借记卡" , @"包商银行·雄鹰贷记卡" , @"包商银行·包商银行内蒙古自治区公务卡" , @"包商银行·贷记卡" , @"包商银行·借记卡" , @"连云港市商业银行·金猴神通借记卡" , @"威海商业银行·通达卡(银联卡)" , @"威海市商业银行·通达借记IC卡" , @"攀枝花市商业银行·攀枝花卡(银联卡)" , @"攀枝花市商业银行·攀枝花卡" , @"绵阳市商业银行·科技城卡(银联卡)" , @"泸州市商业银行·酒城卡(银联卡)" , @"泸州市商业银行·酒城IC卡" , @"大同市商业银行·云冈卡(银联卡)" , @"三门峡银行·天鹅卡(银联卡)" , @"广东南粤银行·南珠卡(银联卡)" , @"张家口市商业银行·好运IC借记卡" , @"桂林市商业银行·漓江卡(银联卡)" , @"龙江银行·福农借记卡" , @"龙江银行·联名借记卡" , @"龙江银行·福农借记卡" , @"龙江银行·龙江IC卡" , @"龙江银行·社会保障卡" , @"龙江银行·--" , @"江苏长江商业银行·长江卡" , @"徐州市商业银行·彭城借记卡(银联卡)" , @"南充市商业银行·借记IC卡" , @"南充市商业银行·熊猫团团卡" , @"莱商银行·银联标准卡" , @"莱芜银行·金凤卡" , @"莱商银行·借记IC卡" , @"德阳银行·锦程卡定活一卡通" , @"德阳银行·锦程卡定活一卡通金卡" , @"德阳银行·锦程卡定活一卡通" , @"唐山市商业银行·唐山市城通卡" , @"曲靖市商业银行·珠江源卡" , @"曲靖市商业银行·珠江源IC卡" , @"温州银行·金鹿信用卡" , @"温州银行·金鹿信用卡" , @"温州银行·金鹿公务卡" , @"温州银行·贷记IC卡" , @"汉口银行·汉口银行贷记卡" , @"汉口银行·汉口银行贷记卡" , @"汉口银行·九通香港旅游贷记普卡" , @"汉口银行·九通香港旅游贷记金卡" , @"汉口银行·贷记卡" , @"汉口银行·九通公务卡" , @"江苏银行·聚宝借记卡" , @"江苏银行·月季卡" , @"江苏银行·紫金卡" , @"江苏银行·绿扬卡(银联卡)" , @"江苏银行·月季卡(银联卡)" , @"江苏银行·九州借记卡(银联卡)" , @"江苏银行·月季卡(银联卡)" , @"江苏银行·聚宝惠民福农卡" , @"江苏银行·江苏银行聚宝IC借记卡" , @"江苏银行·聚宝IC借记卡VIP卡" , @"长治市商业银行·长治商行银联晋龙卡" , @"承德市商业银行·热河卡" , @"承德银行·借记IC卡" , @"德州银行·长河借记卡" , @"德州银行·--" , @"遵义市商业银行·社保卡" , @"遵义市商业银行·尊卡" , @"邯郸市商业银行·邯银卡" , @"邯郸市商业银行·邯郸银行贵宾IC借记卡" , @"安顺市商业银行·黄果树福农卡" , @"安顺市商业银行·黄果树借记卡" , @"江苏银行·紫金信用卡(公务卡)" , @"江苏银行·紫金信用卡" , @"江苏银行·天翼联名信用卡" , @"平凉市商业银行·广成卡" , @"玉溪市商业银行·红塔卡" , @"玉溪市商业银行·红塔卡" , @"浙江民泰商业银行·金融IC卡" , @"浙江民泰商业银行·民泰借记卡" , @"浙江民泰商业银行·金融IC卡C卡" , @"浙江民泰商业银行·银联标准普卡金卡" , @"浙江民泰商业银行·商惠通" , @"上饶市商业银行·三清山卡" , @"东营银行·胜利卡" , @"泰安市商业银行·岱宗卡" , @"泰安市商业银行·市民一卡通" , @"浙江稠州商业银行·义卡" , @"浙江稠州商业银行·义卡借记IC卡" , @"浙江稠州商业银行·公务卡" , @"自贡市商业银行·借记IC卡" , @"自贡市商业银行·锦程卡" , @"鄂尔多斯银行·天骄公务卡" , @"鹤壁银行·鹤卡" , @"许昌银行·连城卡" , @"铁岭银行·龙凤卡" , @"乐山市商业银行·大福卡" , @"乐山市商业银行·--" , @"长安银行·长长卡" , @"长安银行·借记IC卡" , @"重庆三峡银行·财富人生卡" , @"重庆三峡银行·借记卡" , @"石嘴山银行·麒麟借记卡" , @"石嘴山银行·麒麟借记卡" , @"石嘴山银行·麒麟公务卡" , @"盘锦市商业银行·鹤卡" , @"盘锦市商业银行·盘锦市商业银行鹤卡" , @"平顶山银行·平顶山银行公务卡" , @"朝阳银行·鑫鑫通卡" , @"朝阳银行·朝阳银行福农卡" , @"朝阳银行·红山卡" , @"宁波东海银行·绿叶卡" , @"遂宁市商业银行·锦程卡" , @"遂宁是商业银行·金荷卡" , @"保定银行·直隶卡" , @"保定银行·直隶卡" , @"凉山州商业银行·锦程卡" , @"凉山州商业银行·金凉山卡" , @"漯河银行·福卡" , @"漯河银行·福源卡" , @"漯河银行·福源公务卡" , @"达州市商业银行·锦程卡" , @"新乡市商业银行·新卡" , @"晋中银行·九州方圆借记卡" , @"晋中银行·九州方圆卡" , @"驻马店银行·驿站卡" , @"驻马店银行·驿站卡" , @"驻马店银行·公务卡" , @"衡水银行·金鼎卡" , @"衡水银行·借记IC卡" , @"周口银行·如愿卡" , @"周口银行·公务卡" , @"阳泉市商业银行·金鼎卡" , @"阳泉市商业银行·金鼎卡" , @"宜宾市商业银行·锦程卡" , @"宜宾市商业银行·借记IC卡" , @"库尔勒市商业银行·孔雀胡杨卡" , @"雅安市商业银行·锦城卡" , @"雅安市商业银行·--" , @"安阳银行·安鼎卡" , @"信阳银行·信阳卡" , @"信阳银行·公务卡" , @"信阳银行·信阳卡" , @"华融湘江银行·华融卡" , @"华融湘江银行·华融卡" , @"营口沿海银行·祥云借记卡" , @"景德镇商业银行·瓷都卡" , @"哈密市商业银行·瓜香借记卡" , @"湖北银行·金牛卡" , @"湖北银行·汉江卡" , @"湖北银行·借记卡" , @"湖北银行·三峡卡" , @"湖北银行·至尊卡" , @"湖北银行·金融IC卡" , @"西藏银行·借记IC卡" , @"新疆汇和银行·汇和卡" , @"广东华兴银行·借记卡" , @"广东华兴银行·华兴银联公司卡" , @"广东华兴银行·华兴联名IC卡" , @"广东华兴银行·华兴金融IC借记卡" , @"濮阳银行·龙翔卡" , @"宁波通商银行·借记卡" , @"甘肃银行·神舟兴陇借记卡" , @"甘肃银行·甘肃银行神州兴陇IC卡" , @"枣庄银行·借记IC卡" , @"本溪市商业银行·借记卡" , @"盛京银行·医保卡" , @"上海农商银行·如意卡(银联卡)" , @"上海农商银行·如意卡(银联卡)" , @"上海农商银行·鑫通卡" , @"上海农商银行·国际如意卡" , @"上海农商银行·借记IC卡" , @"常熟市农村商业银行·粒金贷记卡(银联卡)" , @"常熟市农村商业银行·公务卡" , @"常熟市农村商业银行·粒金准贷卡" , @"常熟农村商业银行·粒金借记卡(银联卡)" , @"常熟农村商业银行·粒金IC卡" , @"常熟农村商业银行·粒金卡" , @"深圳农村商业银行·信通卡(银联卡)" , @"深圳农村商业银行·信通商务卡(银联卡)" , @"深圳农村商业银行·信通卡" , @"深圳农村商业银行·信通商务卡" , @"广州农村商业银行·福农太阳卡" , @"广东南海农村商业银行·盛通卡" , @"广东南海农村商业银行·盛通卡(银联卡)" , @"佛山顺德农村商业银行·恒通卡(银联卡)" , @"佛山顺德农村商业银行·恒通卡" , @"佛山顺德农村商业银行·恒通卡(银联卡)" , @"江阴农村商业银行·暨阳公务卡" , @"江阴市农村商业银行·合作贷记卡(银联卡)" , @"江阴农村商业银行·合作借记卡" , @"江阴农村商业银行·合作卡(银联卡)" , @"江阴农村商业银行·暨阳卡" , @"重庆农村商业银行·江渝借记卡VIP卡" , @"重庆农村商业银行·江渝IC借记卡" , @"重庆农村商业银行·江渝乡情福农卡" , @"东莞农村商业银行·信通卡(银联卡)" , @"东莞农村商业银行·信通卡(银联卡)" , @"东莞农村商业银行·信通信用卡" , @"东莞农村商业银行·信通借记卡" , @"东莞农村商业银行·贷记IC卡" , @"张家港农村商业银行·一卡通(银联卡)" , @"张家港农村商业银行·一卡通(银联卡)" , @"张家港农村商业银行·" , @"北京农村商业银行·信通卡" , @"北京农村商业银行·惠通卡" , @"北京农村商业银行·凤凰福农卡" , @"北京农村商业银行·惠通卡" , @"北京农村商业银行·中国旅行卡" , @"北京农村商业银行·凤凰卡" , @"天津农村商业银行·吉祥商联IC卡" , @"天津农村商业银行·信通借记卡(银联卡)" , @"天津农村商业银行·借记IC卡" , @"鄞州农村合作银行·蜜蜂借记卡(银联卡)" , @"宁波鄞州农村合作银行·蜜蜂电子钱包(IC)" , @"宁波鄞州农村合作银行·蜜蜂IC借记卡" , @"宁波鄞州农村合作银行·蜜蜂贷记IC卡" , @"宁波鄞州农村合作银行·蜜蜂贷记卡" , @"宁波鄞州农村合作银行·公务卡" , @"成都农村商业银行·福农卡" , @"成都农村商业银行·福农卡" , @"珠海农村商业银行·信通卡(银联卡)" , @"太仓农村商业银行·郑和卡(银联卡)" , @"太仓农村商业银行·郑和IC借记卡" , @"无锡农村商业银行·金阿福" , @"无锡农村商业银行·借记IC卡" , @"黄河农村商业银行·黄河卡" , @"黄河农村商业银行·黄河富农卡福农卡" , @"黄河农村商业银行·借记IC卡" , @"天津滨海农村商业银行·四海通卡" , @"天津滨海农村商业银行·四海通e芯卡" , @"武汉农村商业银行·汉卡" , @"武汉农村商业银行·汉卡" , @"武汉农村商业银行·中国旅游卡" , @"江南农村商业银行·阳湖卡(银联卡)" , @"江南农村商业银行·天天红火卡" , @"江南农村商业银行·借记IC卡" , @"海口联合农村商业银行·海口联合农村商业银行合卡" , @"湖北嘉鱼吴江村镇银行·垂虹卡" , @"福建建瓯石狮村镇银行·玉竹卡" , @"浙江平湖工银村镇银行·金平卡" , @"重庆璧山工银村镇银行·翡翠卡" , @"重庆农村商业银行·银联标准贷记卡" , @"重庆农村商业银行·公务卡" , @"南阳村镇银行·玉都卡" , @"晋中市榆次融信村镇银行·魏榆卡" , @"三水珠江村镇银行·珠江太阳卡" , @"东营莱商村镇银行·绿洲卡" , @"建设银行·单位结算卡" , @"玉溪市商业银行·红塔卡"];
    
    //BIN号
    NSArray* bankBin = @[@"621098", @"622150", @"622151", @"622181", @"622188", @"955100" , @"621095" , @"620062" , @"621285" , @"621798" , @"621799" , @"621797" , @"620529" , @"622199" , @"621096" , @"621622" , @"623219" , @"621674" , @"623218" , @"621599" , @"370246" , @"370248" , @"370249" , @"427010" , @"427018" , @"427019" , @"427020" , @"427029" , @"427030" , @"427039" , @"370247" , @"438125" , @"438126" , @"451804" , @"451810" , @"451811" , @"458071" , @"489734" , @"489735" , @"489736" , @"510529" , @"427062" , @"524091" , @"427064" , @"530970" , @"530990" , @"558360" , @"620200" , @"620302" , @"620402" , @"620403" , @"620404" , @"524047" , @"620406" , @"620407" , @"525498" , @"620409" , @"620410" , @"620411" , @"620412" , @"620502" , @"620503" , @"620405" , @"620408" , @"620512" , @"620602" , @"620604" , @"620607" , @"620611" , @"620612" , @"620704" , @"620706" , @"620707" , @"620708" , @"620709" , @"620710" , @"620609" , @"620712" , @"620713" , @"620714" , @"620802" , @"620711" , @"620904" , @"620905" , @"621001" , @"620902" , @"621103" , @"621105" , @"621106" , @"621107" , @"621102" , @"621203" , @"621204" , @"621205" , @"621206" , @"621207" , @"621208" , @"621209" , @"621210" , @"621302" , @"621303" , @"621202" , @"621305" , @"621306" , @"621307" , @"621309" , @"621311" , @"621313" , @"621211" , @"621315" , @"621304" , @"621402" , @"621404" , @"621405" , @"621406" , @"621407" , @"621408" , @"621409" , @"621410" , @"621502" , @"621317" , @"621511" , @"621602" , @"621603" , @"621604" , @"621605" , @"621608" , @"621609" , @"621610" , @"621611" , @"621612" , @"621613" , @"621614" , @"621615" , @"621616" , @"621617" , @"621607" , @"621606" , @"621804" , @"621807" , @"621813" , @"621814" , @"621817" , @"621901" , @"621904" , @"621905" , @"621906" , @"621907" , @"621908" , @"621909" , @"621910" , @"621911" , @"621912" , @"621913" , @"621915" , @"622002" , @"621903" , @"622004" , @"622005" , @"622006" , @"622007" , @"622008" , @"622010" , @"622011" , @"622012" , @"621914" , @"622015" , @"622016" , @"622003" , @"622018" , @"622019" , @"622020" , @"622102" , @"622103" , @"622104" , @"622105" , @"622013" , @"622111" , @"622114" , @"622200" , @"622017" , @"622202" , @"622203" , @"622208" , @"622210" , @"622211" , @"622212" , @"622213" , @"622214" , @"622110" , @"622220" , @"622223" , @"622225" , @"622229" , @"622230" , @"622231" , @"622232" , @"622233" , @"622234" , @"622235" , @"622237" , @"622215" , @"622239" , @"622240" , @"622245" , @"622224" , @"622303" , @"622304" , @"622305" , @"622306" , @"622307" , @"622308" , @"622309" , @"622238" , @"622314" , @"622315" , @"622317" , @"622302" , @"622402" , @"622403" , @"622404" , @"622313" , @"622504" , @"622505" , @"622509" , @"622513" , @"622517" , @"622502" , @"622604" , @"622605" , @"622606" , @"622510" , @"622703" , @"622715" , @"622806" , @"622902" , @"622903" , @"622706" , @"623002" , @"623006" , @"623008" , @"623011" , @"623012" , @"622904" , @"623015" , @"623100" , @"623202" , @"623301" , @"623400" , @"623500" , @"623602" , @"623803" , @"623901" , @"623014" , @"624100" , @"624200" , @"624301" , @"624402" , @"62451804" , @"62451810" , @"62451811" , @"62458071" , @"623700" , @"628288" , @"624000" , @"628286" , @"622206" , @"621225" , @"526836" , @"513685" , @"543098" , @"458441" , @"620058" , @"621281" , @"622246" , @"900000" , @"544210" , @"548943" , @"370267" , @"621558" , @"621559" , @"621722" , @"621723" , @"620086" , @"621226" , @"402791" , @"427028" , @"427038" , @"548259" , @"356879" , @"356880" , @"356881" , @"356882" , @"528856" , @"621618" , @"620516" , @"621227" , @"621721" , @"900010" , @"625330" , @"625331" , @"625332" , @"623062" , @"622236" , @"621670" , @"524374" , @"550213" , @"374738" , @"374739" , @"621288" , @"625708" , @"625709" , @"622597" , @"622599" , @"360883" , @"360884" , @"625865" , @"625866" , @"625899" , @"621376" , @"620054" , @"620142" , @"621428" , @"625939" , @"621434" , @"625987" , @"621761" , @"621749" , @"620184" , @"621300" , @"621378" , @"625114" , @"622159" , @"621720" , @"625021" , @"625022" , @"621379" , @"620114" , @"620146" , @"621724" , @"625918" , @"621371" , @"620143" , @"620149" , @"621414" , @"625914" , @"621375" , @"620187" , @"621433" , @"625986" , @"621370" , @"625925" , @"622926" , @"622927" , @"622928" , @"622929" , @"622930" , @"622931" , @"620124" , @"620183" , @"620561" , @"625116" , @"622227" , @"621372" , @"621464" , @"625942" , @"622158" , @"625917" , @"621765" , @"620094" , @"620186" , @"621719" , @"621719" , @"621750" , @"621377" , @"620148" , @"620185" , @"621374" , @"621731" , @"621781" , @"552599" , @"623206" , @"621671" , @"620059" , @"403361" , @"404117" , @"404118" , @"404119" , @"404120" , @"404121" , @"463758" , @"514027" , @"519412" , @"519413" , @"520082" , @"520083" , @"558730" , @"621282" , @"621336" , @"621619" , @"622821" , @"622822" , @"622823" , @"622824" , @"622825" , @"622826" , @"622827" , @"622828" , @"622836" , @"622837" , @"622840" , @"622841" , @"622843" , @"622844" , @"622845" , @"622846" , @"622847" , @"622848" , @"622849" , @"623018" , @"625996" , @"625997" , @"625998" , @"628268" , @"625826" , @"625827" , @"548478" , @"544243" , @"622820" , @"622830" , @"622838" , @"625336" , @"628269" , @"620501" , @"621660" , @"621661" , @"621662" , @"621663" , @"621665" , @"621667" , @"621668" , @"621669" , @"621666" , @"625908" , @"625910" , @"625909" , @"356833" , @"356835" , @"409665" , @"409666" , @"409668" , @"409669" , @"409670" , @"409671" , @"409672" , @"456351" , @"512315" , @"512316" , @"512411" , @"512412" , @"514957" , @"409667" , @"518378" , @"518379" , @"518474" , @"518475" , @"518476" , @"438088" , @"524865" , @"525745" , @"525746" , @"547766" , @"552742" , @"553131" , @"558868" , @"514958" , @"622752" , @"622753" , @"622755" , @"524864" , @"622757" , @"622758" , @"622759" , @"622760" , @"622761" , @"622762" , @"622763" , @"601382" , @"622756" , @"628388" , @"621256" , @"621212" , @"620514" , @"622754" , @"622764" , @"518377" , @"622765" , @"622788" , @"621283" , @"620061" , @"621725" , @"620040" , @"558869" , @"621330" , @"621331" , @"621332" , @"621333" , @"621297" , @"377677" , @"621568" , @"621569" , @"625905" , @"625906" , @"625907" , @"628313" , @"625333" , @"628312" , @"623208" , @"621620" , @"621756" , @"621757" , @"621758" , @"621759" , @"621785" , @"621786" , @"621787" , @"621788" , @"621789" , @"621790" , @"621672" , @"625337" , @"625338" , @"625568" , @"621648" , @"621248" , @"621249" , @"622750" , @"622751" , @"622771" , @"622772" , @"622770" , @"625145" , @"620531" , @"620210" , @"620211" , @"622479" , @"622480" , @"622273" , @"622274" , @"621231" , @"621638" , @"621334" , @"625140" , @"621395" , @"622725" , @"622728" , @"621284" , @"421349" , @"434061" , @"434062" , @"436728" , @"436742" , @"453242" , @"491031" , @"524094" , @"526410" , @"544033" , @"552245" , @"589970" , @"620060" , @"621080" , @"621081" , @"621466" , @"621467" , @"621488" , @"621499" , @"621598" , @"621621" , @"621700" , @"622280" , @"622700" , @"622707" , @"622966" , @"622988" , @"625955" , @"625956" , @"553242" , @"621082" , @"621673" , @"623211" , @"356896" , @"356899" , @"356895" , @"436718" , @"436738" , @"436745" , @"436748" , @"489592" , @"531693" , @"532450" , @"532458" , @"544887" , @"552801" , @"557080" , @"558895" , @"559051" , @"622166" , @"622168" , @"622708" , @"625964" , @"625965" , @"625966" , @"628266" , @"628366" , @"625362" , @"625363" , @"628316" , @"628317" , @"620021" , @"620521" , @"405512" , @"601428" , @"405512" , @"434910" , @"458123" , @"458124" , @"520169" , @"522964" , @"552853" , @"601428" , @"622250" , @"622251" , @"521899" , @"622254" , @"622255" , @"622256" , @"622257" , @"622258" , @"622259" , @"622253" , @"622261" , @"622284" , @"622656" , @"628216" , @"622252" , @"66405512" , @"622260" , @"66601428" , @"955590" , @"955591" , @"955592" , @"955593" , @"628218" , @"622262" , @"621069" , @"620013" , @"625028" , @"625029" , @"621436" , @"621002" , @"621335" , @"433670" , @"433680" , @"442729" , @"442730" , @"620082" , @"622690" , @"622691" , @"622692" , @"622696" , @"622698" , @"622998" , @"622999" , @"433671" , @"968807" , @"968808" , @"968809" , @"621771" , @"621767" , @"621768" , @"621770" , @"621772" , @"621773" , @"620527" , @"356837" , @"356838" , @"486497" , @"622660" , @"622662" , @"622663" , @"622664" , @"622665" , @"622666" , @"622667" , @"622669" , @"622670" , @"622671" , @"622672" , @"622668" , @"622661" , @"622674" , @"622673" , @"620518" , @"621489" , @"621492" , @"620535" , @"623156" , @"621490" , @"621491" , @"620085" , @"623155" , @"623157" , @"623158" , @"623159" , @"999999" , @"621222" , @"623020" , @"623021" , @"623022" , @"623023" , @"622630" , @"622631" , @"622632" , @"622633" , @"622615" , @"622616" , @"622618" , @"622622" , @"622617" , @"622619" , @"415599" , @"421393" , @"421865" , @"427570" , @"427571" , @"472067" , @"472068" , @"622620" , @"621691" , @"545392" , @"545393" , @"545431" , @"545447" , @"356859" , @"356857" , @"407405" , @"421869" , @"421870" , @"421871" , @"512466" , @"356856" , @"528948" , @"552288" , @"622600" , @"622601" , @"622602" , @"517636" , @"622621" , @"628258" , @"556610" , @"622603" , @"464580" , @"464581" , @"523952" , @"545217" , @"553161" , @"356858" , @"622623" , @"625911" , @"377152" , @"377153" , @"377158" , @"377155" , @"625912" , @"625913" , @"356885" , @"356886" , @"356887" , @"356888" , @"356890" , @"402658" , @"410062" , @"439188" , @"439227" , @"468203" , @"479228" , @"479229" , @"512425" , @"521302" , @"524011" , @"356889" , @"545620" , @"545621" , @"545947" , @"545948" , @"552534" , @"552587" , @"622575" , @"622576" , @"622577" , @"622579" , @"622580" , @"545619" , @"622581" , @"622582" , @"622588" , @"622598" , @"622609" , @"690755" , @"690755" , @"545623" , @"621286" , @"620520" , @"621483" , @"621485" , @"621486" , @"628290" , @"622578" , @"370285" , @"370286" , @"370287" , @"370289" , @"439225" , @"518710" , @"518718" , @"628362" , @"439226" , @"628262" , @"625802" , @"625803" , @"621299" , @"966666" , @"622909" , @"622908" , @"438588" , @"438589" , @"461982" , @"486493" , @"486494" , @"486861" , @"523036" , @"451289" , @"527414" , @"528057" , @"622901" , @"622902" , @"622922" , @"628212" , @"451290" , @"524070" , @"625084" , @"625085" , @"625086" , @"625087" , @"548738" , @"549633" , @"552398" , @"625082" , @"625083" , @"625960" , @"625961" , @"625962" , @"625963" , @"356851" , @"356852" , @"404738" , @"404739" , @"456418" , @"498451" , @"515672" , @"356850" , @"517650" , @"525998" , @"622177" , @"622277" , @"622516" , @"622517" , @"622518" , @"622520" , @"622521" , @"622522" , @"622523" , @"628222" , @"628221" , @"984301" , @"984303" , @"622176" , @"622276" , @"622228" , @"621352" , @"621351" , @"621390" , @"621792" , @"625957" , @"625958" , @"621791" , @"620530" , @"625993" , @"622519" , @"621793" , @"621795" , @"621796" , @"622500" , @"623078" , @"622384" , @"940034" , @"940015" , @"622886" , @"622391" , @"940072" , @"622359" , @"940066" , @"622857" , @"940065" , @"621019" , @"622309" , @"621268" , @"622884" , @"621453" , @"622684" , @"621016" , @"621015" , @"622950" , @"622951" , @"621072" , @"623183" , @"623185" , @"621005" , @"622172" , @"622985" , @"622987" , @"622267" , @"622278" , @"622279" , @"622468" , @"622892" , @"940021" , @"621050" , @"620522" , @"356827" , @"356828" , @"356830" , @"402673" , @"402674" , @"438600" , @"486466" , @"519498" , @"520131" , @"524031" , @"548838" , @"622148" , @"622149" , @"622268" , @"356829" , @"622300" , @"628230" , @"622269" , @"625099" , @"625953" , @"625350" , @"625351" , @"625352" , @"519961" , @"625839" , @"421317" , @"602969" , @"621030" , @"621420" , @"621468" , @"623111" , @"422160" , @"422161" , @"622865" , @"940012" , @"623131" , @"622178" , @"622179" , @"628358" , @"622394" , @"940025" , @"621279" , @"622281" , @"622316" , @"940022" , @"621418" , @"512431" , @"520194" , @"621626" , @"623058" , @"602907" , @"622986" , @"622989" , @"622298" , @"622338" , @"940032" , @"623205" , @"621977" , @"990027" , @"622325" , @"623029" , @"623105" , @"621244" , @"623081" , @"623108" , @"566666" , @"622455" , @"940039" , @"622466" , @"628285" , @"622420" , @"940041" , @"623118" , @"603708" , @"622993" , @"623070" , @"623069" , @"623172" , @"623173" , @"622383" , @"622385" , @"628299" , @"603506" , @"603367" , @"622878" , @"623061" , @"623209" , @"628242" , @"622595" , @"622303" , @"622305" , @"621259" , @"622596" , @"622333" , @"940050" , @"621439" , @"623010" , @"621751" , @"628278" , @"625502" , @"625503" , @"625135" , @"622476" , @"621754" , @"622143" , @"940001" , @"623026" , @"623086" , @"628291" , @"621532" , @"621482" , @"622135" , @"622152" , @"622153" , @"622154" , @"622996" , @"622997" , @"940027" , @"623099" , @"623007" , @"940055" , @"622397" , @"622398" , @"940054" , @"622331" , @"622426" , @"625995" , @"621452" , @"628205" , @"628214" , @"625529" , @"622428" , @"621529" , @"622429" , @"621417" , @"623089" , @"623200" , @"940057" , @"622311" , @"623119" , @"622877" , @"622879" , @"621775" , @"623203" , @"603601" , @"622137" , @"622327" , @"622340" , @"622366" , @"622134" , @"940018" , @"623016" , @"623096" , @"940049" , @"622425" , @"622425" , @"621577" , @"622485" , @"623098" , @"628329" , @"621538" , @"940006" , @"621269" , @"622275" , @"621216" , @"622465" , @"940031" , @"621252" , @"622146" , @"940061" , @"621419" , @"623170" , @"622440" , @"940047" , @"940017" , @"622418" , @"623077" , @"622413" , @"940002" , @"623188" , @"622310" , @"940068" , @"622321" , @"625001" , @"622427" , @"940069" , @"623039" , @"628273" , @"622370" , @"683970" , @"940074" , @"621437" , @"628319" , @"990871" , @"622308" , @"621415" , @"623166" , @"622132" , @"621340" , @"621341" , @"622140" , @"623073" , @"622147" , @"621633" , @"622301" , @"623171" , @"621422" , @"622335" , @"622336" , @"622165" , @"622315" , @"628295" , @"625950" , @"621760" , @"622337" , @"622411" , @"623102" , @"622342" , @"623048" , @"622367" , @"622392" , @"623085" , @"622395" , @"622441" , @"622448" , @"621413" , @"622856" , @"621037" , @"621097" , @"621588" , @"623032" , @"622644" , @"623518" , @"622870" , @"622866" , @"623072" , @"622897" , @"628279" , @"622864" , @"621403" , @"622561" , @"622562" , @"622563" , @"622167" , @"622777" , @"621497" , @"622868" , @"622899" , @"628255" , @"625988" , @"622566" , @"622567" , @"622625" , @"622626" , @"625946" , @"628200" , @"621076" , @"504923" , @"622173" , @"622422" , @"622447" , @"622131" , @"940076" , @"621579" , @"622876" , @"622873" , @"622962" , @"622936" , @"623060" , @"622937" , @"623101" , @"621460" , @"622939" , @"622960" , @"623523" , @"621591" , @"622961" , @"628210" , @"622283" , @"625902" , @"621010" , @"622980" , @"623135" , @"621726" , @"621088" , @"620517" , @"622740" , @"625036" , @"621014" , @"621004" , @"622972" , @"623196" , @"621028" , @"623083" , @"628250" , @"623121" , @"621070" , @"628253" , @"622979" , @"621035" , @"621038" , @"621086" , @"621498" , @"621296" , @"621448" , @"622945" , @"621755" , @"622940" , @"623120" , @"628355" , @"621089" , @"623161" , @"628339" , @"621074" , @"621515" , @"623030" , @"621345" , @"621090" , @"623178" , @"621091" , @"623168" , @"621057" , @"623199" , @"621075" , @"623037" , @"628303" , @"621233" , @"621235" , @"621223" , @"621780" , @"621221" , @"623138" , @"628389" , @"621239" , @"623068" , @"621271" , @"628315" , @"621272" , @"621738" , @"621273" , @"623079" , @"621263" , @"621325" , @"623084" , @"621327" , @"621753" , @"628331" , @"623160" , @"621366" , @"621388" , @"621348" , @"621359" , @"621360" , @"621217" , @"622959" , @"621270" , @"622396" , @"622511" , @"623076" , @"621391" , @"621339" , @"621469" , @"621625" , @"623688" , @"623113" , @"621601" , @"621655" , @"621636" , @"623182" , @"623087" , @"621696" , @"622955" , @"622478" , @"940013" , @"621495" , @"621688" , @"623162" , @"622462" , @"628272" , @"625101" , @"622323" , @"623071" , @"603694" , @"622128" , @"622129" , @"623035" , @"623186" , @"621522" , @"622271" , @"940037" , @"940038" , @"985262" , @"622322" , @"628381" , @"622481" , @"622341" , @"940058" , @"623115" , @"621258" , @"621465" , @"621528" , @"622328" , @"940062" , @"625288" , @"623038" , @"625888" , @"622332" , @"940063" , @"623123" , @"622138" , @"621066" , @"621560" , @"621068" , @"620088" , @"621067" , @"622531" , @"622329" , @"623103" , @"622339" , @"620500" , @"621024" , @"622289" , @"622389" , @"628300" , @"625516" , @"621516" , @"622859" , @"622869" , @"623075" , @"622895" , @"623125" , @"622947" , @"621561" , @"623095" , @"621073" , @"623109" , @"621361" , @"623033" , @"623207" , @"622891" , @"621363" , @"623189" , @"623510" , @"622995" , @"621053" , @"621230" , @"621229" , @"622218" , @"628267" , @"621392" , @"621481" , @"621310" , @"621396" , @"623251" , @"628351"];
    
    int index = -1;
    
    if(idCard==nil || idCard.length<16 || idCard.length>19){
        return @"";
    }
    
    //6位Bin号
    NSString* cardbin_6 = [idCard substringWithRange:NSMakeRange(0, 6)];
    for (int i = 0; i < bankBin.count; i++) {
        if ([cardbin_6 isEqualToString:bankBin[i]]) {
            index = i;
        }
    }
    if (index != -1) {
        return bankName[index];
    }
    
    //8位Bin号
    //    NSString* cardbin_8 = [idCard substringWithRange:NSMakeRange(0, 8)];
    //    for (int i = 0; i < bankBin.count; i++) {
    //        if ([cardbin_8 isEqualToString:bankBin[i]]) {
    //            index = i;
    //        }
    //    }
    //    if (index != -1) {
    //        return bankName[index];
    //    }
    
    return @"";
}

#pragma mark - 根据出生日期返回详细的年龄(精确到天)
+ (NSString *)dateToDetailOld:(NSDate *)bornDate {
    // 获得当前系统时间
    NSDate *currentDate = [NSDate date];
    // 创建日历(格里高利历)
    NSCalendar *calendar = [NSCalendar currentCalendar];
    // 设置component的组成部分
    NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ;
    // 按照组成部分格式计算出生日期与现在时间的时间间隔
    NSDateComponents *date = [calendar components:unitFlags fromDate:bornDate toDate:currentDate options:0];
    
    // 判断年龄大小,以确定返回格式
    if( [date year] > 0) {
        return [NSString stringWithFormat:(@"%ld岁%ld月%ld天"),(long)[date year],(long)[date month],(long)[date day]];
    } else if([date month] > 0) {
        return [NSString stringWithFormat:(@"%ld月%ld天"),(long)[date month],(long)[date day]];
    } else if([date day] > 0) {
        return [NSString stringWithFormat:(@"%ld天"),(long)[date day]];
    } else {
        return @"0天";
    }
}

#pragma mark - 获取当前的时间
+ (NSDate *)getCurrentTimesWithFormat:(NSString *)format {
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    
    [formatter setDateFormat:format];
    
    //现在时间,你可以输出来看下是什么格式
    
    NSDate *datenow = [NSDate date];
    
    //----------将nsdate按formatter格式转成nsstring
    
    NSLog(@"datenow =  %@",datenow);
    
    return datenow;
}

#pragma mark - 获取当前的时间字符串
+ (NSString *)getCurrentTimesStrWithFormat:(NSString *)format {
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    
    [formatter setDateFormat:format];
    
    //现在时间,你可以输出来看下是什么格式
    
    NSDate *datenow = [NSDate date];
    
    //----------将nsdate按formatter格式转成nsstring
    
    NSString *currentTimeString = [formatter stringFromDate:datenow];
    
    NSLog(@"currentTimeString =  %@",currentTimeString);
    
    return currentTimeString;
}

#pragma mark - 获取当前时间戳有两种方法(以秒为单位)
+ (NSString *)getNowTimeTimestamp {
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    
    //设置时区,这个对于时间的处理有时很重要
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
    
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]];
    
    return timeSp;
    
}

+ (NSString *)getNowTimeTimestamp2 {
    NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
    
    NSTimeInterval a=[dat timeIntervalSince1970];
    
    NSString*timeString = [NSString stringWithFormat:@"%0.f", a];//转为字符型
    
    return timeString;
}

#pragma mark - 获取当前时间戳  （以毫秒为单位）
+ (NSString *)getNowTimeTimestamp3 {
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss SSS"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    
    //设置时区,这个对于时间的处理有时很重要
    
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    
    [formatter setTimeZone:timeZone];
    
    NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式
    
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]*1000];
    
    return timeSp;
}

+ (NSString *)getMiddleString:(NSString *)jieshu beginString:(NSString *)bString endString:(NSString *)eString {
    
    NSRange startRange = [jieshu rangeOfString:bString];
    
    NSRange endRange = [jieshu rangeOfString:eString];
    
    NSRange range = NSMakeRange(startRange.location + startRange.length, endRange.location - startRange.location - startRange.length);
    
    NSString *result = [jieshu substringWithRange:range];
    
    NSLog(@"%@",result);
    return result;
}

#pragma mark - 时间大小比较
+ (int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay andDateForm:(NSString *)dateForm {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    
    [dateFormatter setDateFormat:dateForm];
    
    NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];
    
    NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];
    
    NSDate *dateA = [dateFormatter dateFromString:oneDayStr];
    
    NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];
    
    NSComparisonResult result = [dateA compare:dateB];
    
    if (result == NSOrderedDescending) {
        //NSLog(@"oneDay比 anotherDay时间晚");
        return 1;
    }
    else if (result == NSOrderedAscending){
        //NSLog(@"oneDay比 anotherDay时间早");
        return -1;
    }
    //NSLog(@"两者时间是同一个时间");
    return 0;
    
}

#pragma mark - 字符串转时间
+ (NSDate *)nsstringConversionNSDate:(NSString *)dateStr {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm"];
    NSDate *datestr = [dateFormatter dateFromString:dateStr];
    return datestr;
}

#pragma mark - 获取App名称
+(NSString *)getMyApplicationName {
    NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
    NSString *appName = [info objectForKey:@"CFBundleDisplayName"];
    if ([CommonTTool isStrNull:appName]) {
        appName = [info objectForKey:@"CFBundleName"];
    }
    return appName;
}

#pragma mark - 全局替换图片
+ (void)setImageWithURL:(UIImageView *)imageView url:(NSString *)url placeholderImage:(NSString *)placeholderImage {
    
    //匹配字符串
    NSString*string = url;
    if ([string containsString:@"?Expires"]) {
        NSRange range = [string rangeOfString:@"?Expires"];
        string = [string substringToIndex:range.location];
        string = [string stringByAppendingString:@"?x-oss-process=image/format,jpg"];
    }
    
    
    
//    [imageView sd_setImageWithURL:[NSURL URLWithString:string] placeholderImage:[UIImage imageNamed:placeholderImage]];
    
}

#pragma mark - 根据活跃度获取皇冠等级
+ (NSDictionary *)getHgRankAndImageWithActivityNum:(NSString *)activityNum isy:(BOOL)y{
    
    int rankCount = [activityNum intValue];
    
    NSArray *imageS = @[@"hgh3_t",@"hgh2_y",@"hgh1_g"];
    NSArray *imageSy = @[@"hg3_t",@"hg2_y",@"hg1_g"];
    

    if (rankCount >= 0 && rankCount < 1000) {
        
        if (y) {
            return @{@"img":imageSy[0],@"rank":@"1"};
        }else {
            return @{@"img":imageS[0],@"rank":@"1"};
        }
        
    }else if (rankCount >= 1000 && rankCount < 5000){
        
        if (y) {
            return @{@"img":imageSy[0],@"rank":@"2"};
        }else {
            return @{@"img":imageS[0],@"rank":@"2"};
        }
        
    }else if (rankCount >= 5000 && rankCount < 10000){
        
        if (y) {
            return @{@"img":imageSy[0],@"rank":@"3"};
        }else {
            return @{@"img":imageS[0],@"rank":@"3"};
        }
        
    }else if (rankCount >= 10000 && rankCount < 30000){
        
        if (y) {
            return @{@"img":imageSy[1],@"rank":@"4"};
        }else {
            return @{@"img":imageS[1],@"rank":@"4"};
        }
        
    }else if (rankCount >= 30000 && rankCount < 50000){
        
        if (y) {
            return @{@"img":imageSy[1],@"rank":@"5"};
        }else {
            return @{@"img":imageS[1],@"rank":@"5"};
        }
        
    }else if (rankCount >= 50000 && rankCount < 100000){
        
        if (y) {
            return @{@"img":imageSy[1],@"rank":@"6"};
        }else {
            return @{@"img":imageS[1],@"rank":@"6"};
        }
        
    }else if (rankCount >= 100000 && rankCount < 200000){
        
        if (y) {
            return @{@"img":imageSy[2],@"rank":@"7"};
        }else {
            return @{@"img":imageS[2],@"rank":@"7"};
        }
        
    }else if (rankCount >= 200000 && rankCount < 300000){
        
        if (y) {
            return @{@"img":imageSy[2],@"rank":@"8"};
        }else {
            return @{@"img":imageS[2],@"rank":@"8"};
        }
        
    }else {
        
        if (y) {
            return @{@"img":imageSy[2],@"rank":@"9"};
        }else {
            return @{@"img":imageS[2],@"rank":@"9"};
        }
        
    }
    
    
}

+ (NSString *)commentNumWithHandle:(NSString *)numStr {
    
    int num = [numStr intValue];
    if (num >= 1000) {
        
        double qian = num / 1000.00;
        
        return [NSString stringWithFormat:@"%.1fk+",num];
        
        
        
    }else if (num >= 10000) {
        
        double qian = num / 10000.00;
        
        return [NSString stringWithFormat:@"%.1fW+",num];
        
        
    }else {
        return numStr;
    }
    
    
}

+ (void)serviceCallPhone {
    
       [NetRequestTool postUrl:@"sysCode/querySysCodeObject" parameters:@{@"type":@"2"} success:^(id responseObject) {
       
           NSDictionary *dict = responseObject[@"object"];
           NSString *url = [NSString stringWithFormat:@"tel://%@",dict[@"value"]];
           [[UIApplication   sharedApplication] openURL:[NSURL URLWithString:url]];
           
       } failure:^(NSInteger statusCode) {
   //        [ws endRefreshNoMoreData];
       } finish:^{
           SVPDismiss
       }];

}


+ (NSString *)getPrice:(float)str {
    
    
    return [NSString stringWithFormat:@"%.2lf",str];
}

+ (NSString *)getGoodsSpecifications:(NSString *)str {
    NSString *curretStr = @"";
    if ([CommonTTool isStrNull:str]) {
        curretStr = @"";
    }else {
       NSArray *strArray = [str componentsSeparatedByString:@"|"];
        for (NSString *childStr in strArray) {
            curretStr = [NSString stringWithFormat:@"%@%@ ",curretStr,childStr];
        }
        
    }
    
    return curretStr;
}

/**
 *  获取时间差值  截止时间-当前时间
 *  nowDateStr : 当前时间
 *  deadlineStr : 截止时间
 *  @return 时间戳差值
 */
+ (NSInteger)getDateDifferenceWithNowDateStr:(NSString*)nowDateStr deadlineStr:(NSString*)deadlineStr {
    
    NSInteger timeDifference = 0;
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yy-MM-dd HH:mm:ss"];
    NSDate *nowDate = [formatter dateFromString:nowDateStr];
    NSDate *deadline = [formatter dateFromString:deadlineStr];
    NSTimeInterval oldTime = [nowDate timeIntervalSince1970];
    NSTimeInterval newTime = [deadline timeIntervalSince1970];
    timeDifference = newTime - oldTime;
    
    return timeDifference;
}

/**
 *  获取当天的字符串
 *  @return 格式为年-月-日 时分秒
 */
+ (NSString *)getCurrentTimeyyyymmdd {
    
    NSDate *now = [NSDate date];
    NSDateFormatter *formatDay = [[NSDateFormatter alloc] init];
    formatDay.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSString *dayStr = [formatDay stringFromDate:now];
    
    return dayStr;
}

+ (BOOL)isJumpLoginVC:(BOOL)isShowAlert{
    
    if (![[NSUserDefaults standardUserDefaults] boolForKey:kisLogin]) {
        if (isShowAlert) {
            // 系统提示框
            UIAlertController *alterController = [UIAlertController alertControllerWithTitle:nil message:@"您还没有登录，请先登录!" preferredStyle:UIAlertControllerStyleAlert];
            [alterController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
                
                
            }]];
            
            [alterController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                
                LoginVC *vc = [[LoginVC alloc]initWithNibName:@"LoginVC" bundle:nil];
                [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
                
            }]];
            
            [[CommonTTool getCurrentVC] presentViewController:alterController animated:YES completion:nil];
        }
        
        return NO;

    }
    
    return YES;
    
}

+ (void)isYinKaGoodsBuy {
    
    if (![CommonTTool isJumpLoginVC:YES]) {
        return;
    }
    
   // 系统提示框
    UIAlertController *alterController = [UIAlertController alertControllerWithTitle:nil message:@"只有银卡会员可以购买，您还不是银卡会员，点击去升级!" preferredStyle:UIAlertControllerStyleAlert];
    [alterController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        
        
    }]];
    
    [alterController addAction:[UIAlertAction actionWithTitle:@"去升级" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        
        UpgradeYinKaVIPVC *vc = [[UpgradeYinKaVIPVC alloc]init];
        [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
        
    }]];
    
    [[CommonTTool getCurrentVC] presentViewController:alterController animated:YES completion:nil];
    
    
}


+ (BOOL)isVipShow:(BOOL)isShowAlert {
    
    if (![CommonTTool isJumpLoginVC:NO]) {
        return YES;
    }
    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"kUserIsMerchants"] && [[NSUserDefaults standardUserDefaults] boolForKey:kisLogin]) {
 
       if (userModel.vip_type == 0) {
           
           // 系统提示框
           UIAlertController *alterController = [UIAlertController alertControllerWithTitle:nil message:@"请先支付成为会员，否则无法使用" preferredStyle:UIAlertControllerStyleAlert];
           [alterController addAction:[UIAlertAction actionWithTitle:@"退出登录" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
               
               // 清空所有本地存储数据
               
               [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUserInfo];
               [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUserMerchantsInfo];
               [[NSUserDefaults standardUserDefaults] removeObjectForKey:kisLogin];
               [[NSNotificationCenter defaultCenter] postNotificationName:kUserInfoDetailsExitUpDate object:nil];
               LoginVC *loginVC = [[LoginVC alloc] init];
               BaseNavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:loginVC];
               [[CommonTTool getCurrentVC] presentViewController:nav animated:YES completion:nil];
               
           }]];
           
           [alterController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
               
               RegisterPayVC *vc = [[RegisterPayVC alloc]initWithNibName:@"RegisterPayVC" bundle:nil];
               vc.type = 1;
               vc.orderType = 1;
               vc.title  = @"开通正式会员";
               [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
               
               
           }]];
           
           [[CommonTTool getCurrentVC] presentViewController:alterController animated:YES completion:nil];
           
           return NO;
           
       }
    }
    return YES;
}

+ (void)jumpBannerWithModel:(BannerModel *)model {
    
    if ([model.jump_type isEqualToString:@"0"]) {
        WebVC *vc = [[WebVC alloc]init];
        vc.webtitle  = model.title;
        vc.linkPath = model.jump_path;
        vc.htmlString = model.depict;
        vc.hidesBottomBarWhenPushed = YES;
        [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
        return;
    }
    
    if ([model.jump_type isEqualToString:@"1"]) {
        
        switch (model.jump_module) {
            case 1:
                {
                    MailDetailsVC *vc = [[MailDetailsVC alloc] init];
                    MailGoodsModel *goodsModel = [[MailGoodsModel alloc]init];
                    goodsModel.sku_id = model.jump_module_param;
                    goodsModel.sku_type = 1;
                    vc.goodsModel = goodsModel;
                    vc.hidesBottomBarWhenPushed = YES;
                    [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
                }
                break;
            case 2:
                {
                   PagingViewController *vc= [[PagingViewController alloc]init];
                   vc.business_id = model.jump_module_param;
                   [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
                }
                break;
            case 3:
            {
                MailDetailsVC *vc = [[MailDetailsVC alloc] init];
                MailGoodsModel *goodsModel = [[MailGoodsModel alloc]init];
                goodsModel.sku_id = model.jump_module_param;
                goodsModel.sku_type = 3;
                vc.goodsModel = goodsModel;
                vc.hidesBottomBarWhenPushed = YES;
                [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
            }
                break;
            case 4:
            {
               MailDetailsVC *vc = [[MailDetailsVC alloc] init];
               MailGoodsModel *goodsModel = [[MailGoodsModel alloc]init];
               goodsModel.sku_id = model.jump_module_param;
               goodsModel.sku_type = 4;
               vc.goodsModel = goodsModel;
               vc.hidesBottomBarWhenPushed = YES;
               [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
            }
            break;
            case 5:
            {
                BusinessDetailedVC *vc = [[BusinessDetailedVC alloc] init];
                BusinessModel *bussion  = [[BusinessModel alloc]init];
                bussion.business_id = [model.jump_module_param integerValue];
                vc.model = bussion;
                vc.hidesBottomBarWhenPushed = YES;
                [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
            }
            break;
            case 9:
            {
               MailDetailsVC *vc = [[MailDetailsVC alloc] init];
               MailGoodsModel *goodsModel = [[MailGoodsModel alloc]init];
               goodsModel.sku_id = model.jump_module_param;
               goodsModel.sku_type = 9;
               vc.goodsModel = goodsModel;
               vc.hidesBottomBarWhenPushed = YES;
               [[CommonTTool getCurrentVC].navigationController pushViewController:vc animated:YES];
            }
            break;
            
            default:
                break;
        }
    }
    
    
}

/**
 比较两个版本号的大小（2.0）
 
 @param v1 第一个版本号
 @param v2 第二个版本号
 @return 版本号相等,返回0; v1小于v2,返回-1; 否则返回1.
 */
+ (NSInteger)compareVersion2:(NSString *)v1 to:(NSString *)v2 {
    // 都为空，相等，返回0
    if (!v1 && !v2) {
        return 0;
    }
    
    // v1为空，v2不为空，返回-1
    if (!v1 && v2) {
        return -1;
    }
    
    // v2为空，v1不为空，返回1
    if (v1 && !v2) {
        return 1;
    }
    
    // 获取版本号字段
    NSArray *v1Array = [v1 componentsSeparatedByString:@"."];
    NSArray *v2Array = [v2 componentsSeparatedByString:@"."];
    // 取字段最大的，进行循环比较
    NSInteger bigCount = (v1Array.count > v2Array.count) ? v1Array.count : v2Array.count;
    
    for (int i = 0; i < bigCount; i++) {
        // 字段有值，取值；字段无值，置0。
        NSInteger value1 = (v1Array.count > i) ? [[v1Array objectAtIndex:i] integerValue] : 0;
        NSInteger value2 = (v2Array.count > i) ? [[v2Array objectAtIndex:i] integerValue] : 0;
        if (value1 > value2) {
            // v1版本字段大于v2版本字段，返回1
            return 1;
        } else if (value1 < value2) {
            // v2版本字段大于v1版本字段，返回-1
            return -1;
        }
        
        // 版本相等，继续循环。
    }

    // 版本号相等
    return 0;
}

+ (void)queryNewVersionInfo {
    
    
    [NetRequestTool postUrl:@"version/queryNewVersionInfo" parameters:@{@"type":@"1"} success:^(id responseObject) {
        NSDictionary *dict =  responseObject[@"object"];
        NSString *is_force_update = dict[@"is_force_update"];
        NSString *state = dict[@"state"];

        NSString  *versionString = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
        
        NSString  *currentVersionString = dict[@"version_no"];

        
        NSString *name = dict[@"name"];
        NSString *content = dict[@"content"];
        NSString *path = dict[@"path"];
        
        NSInteger isUpDate = [CommonTTool compareVersion2:currentVersionString to:versionString];
        
        if (isUpDate == 1  && [state isEqualToString:@"2"]) {
            if ([is_force_update isEqualToString:@"1"]) {
                
                UIViewController *currentVC = [CommonTTool getCurrentVC];
                
                UIAlertController *alterController = [UIAlertController alertControllerWithTitle:name message:content preferredStyle:UIAlertControllerStyleAlert];
                
                UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"暂不更新" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
                    
                
                }];
                
                UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"立即更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                    
                    NSString *url =path;//

                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
                    
                    
                }];
                [alterController addAction:cancel];
                [alterController addAction:sureAction];
                [currentVC presentViewController:alterController animated:YES completion:nil];
                

            }else {
                
                UIViewController *currentVC = [CommonTTool getCurrentVC];
                
                UIAlertController *alterController = [UIAlertController alertControllerWithTitle:name message:content preferredStyle:UIAlertControllerStyleAlert];
                UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"立即更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                    
                    NSString *url =@"https://apps.apple.com/cn/app/id1505005289";//

                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
                    
                    AppDelegate *app = (AppDelegate*)[UIApplication sharedApplication].delegate;
                    //此处如果不强转 AppDelegate，会报警告：Initializing 'AppDelegate *__strong' with
                    // an expression of incompatible type 'id<UIApplicationDelegate>
                    UIWindow *window = app.window;
                    // 动画 1
                    [UIView animateWithDuration:0.6f animations:^{
                        window.alpha = 0;
                        window.frame = CGRectMake(0, window.bounds.size.width, 0, 0);
                    } completion:^(BOOL finished) {
                        exit(0);
                    }];

                    
                }];
                [alterController addAction:sureAction];
                [currentVC presentViewController:alterController animated:YES completion:nil];
                
                
            }
        }
        
        
       
        
    } failure:^(NSInteger statusCode) {
        
    } finish:^{
        
    }];
    
    
}


@end
